谷歌官方介绍:

Snackbars provide lightweight feedback about an operation. They show a brief message at the bottom of the screen on mobile and lower left on larger devices. Snackbars appear above all other elements on screen and only one can be displayed at a time.

Snackbars 提供了一个轻量级的操作反馈,它们屏幕的底部显示一个简短的信息和如看是较大的设备就显示在左下方,snackbars出现在屏幕上的所有其他要素之上,只有一个可以同时显示 。

They automatically disappear after a timeout or after user interaction elsewhere on the screen, particularly after interactions that summon a new surface or activity. Snackbars can be swiped off screen.

在超时或者用户在屏幕上完成了交互的时候SnackBar会自动消失,特别是在召唤了新的表层(意思是SnackBar本来是最外层的,然后在SnackBar上又新添加了一层)或者Activity的时候。SnackBar能在屏幕上侧滑。

Snackbars can contain an action which is set via setAction(CharSequence, android.view.View.OnClickListener).

SnackBar能包含一个action使用setAction方法

To be notified when a snackbar has been shown or dismissed, you can provide a Snackbar.Callback via addCallback(BaseCallback).

可以通过CallBack来得知SnackBar是显示还是隐藏

提供的常量:

int LENGTH_INDEFINITE     Show the Snackbar indefinitely.      无限期的展示Snackbar int LENGTH_LONG     Show the Snackbar for a long period of time. int LENGTH_SHORT     Show the Snackbar for a short period of time. 
Snackbar make (View view,                 CharSequence text,                 int duration)

此处的make方法于Toast中的make方法类似,唯一区别在第一个传递的参数,此处的SnackBar需要传递的参数为View,SnackBar需要一个View来承载,SnackBar会遍历整个View Tree来找到一个合适的View来承载SnackBar的View,如果需要实现文档上描述的动画效果”such as swipe-to-dismiss and automatically moving of widgets like FloatingActionButton”就需要在布局中包括CoordinatorLayout,如果没有这个布局则就没有这些动画效果。

注意:使用时,如果不使用“”标签包裹,不会出现文档中所描述的动画效果。

下面的代码基本涵盖了SnackBar的Api,使用起来也还算是比较优雅:

    publicclassMainActivityextendsAppCompatActivity{    @Override    protectedvoidonCreate(BundlesavedInstanceState){    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    }    publicvoidclick(Viewv){    Snackbar.make(v,"我是一个SnackBar",Snackbar.LENGTH_LONG).setAction("Action",newView.OnClickListener(){    @Override    publicvoidonClick(Viewv){    Toast.makeText(MainActivity.this,"Toast",Toast.LENGTH_SHORT).show();    }    }).setActionTextColor(Color.GREEN)//设置SnackBar中点击事件的字体颜色    .setText("文字更新了")//更新SnackBar中提示的文字    .setCallback(callback)//设置一个SnackBar状态的回调    .show();    }    Snackbar.Callbackcallback=newSnackbar.Callback(){    //SnackBar消失的时候调用    @Override    publicvoidonDismissed(Snackbarsnackbar,intevent){    super.onDismissed(snackbar,event);    Log.i("Test","SnackBar隐藏了!");    }    //SnackBar显示的时候调用    @Override    publicvoidonShown(Snackbarsnackbar){    super.onShown(snackbar);    Log.i("Test","SnackBar显示出来了!");    }    };    }

运行结果:

(●’◡’●)

更多相关文章

  1. webview 5.0以上 图片不显示问题
  2. Android初学习 - LinearLayout、RelativeLayout、FrameLayout内
  3. android fragment动态显示隐藏
  4. 安卓简易计算器
  5. Android手指绘图(一)
  6. Android(安卓)RecyclerView实现viewpager效果
  7. listview check
  8. Android(安卓)动画效果
  9. Bundle 的两个常用方法

随机推荐

  1. Android界面布局详解
  2. android简单学习总结
  3. Android开机启动流程
  4. Android之HttpPost与HttpGet使用
  5. Android(安卓)开发中的 Handler ,Thread
  6. Android LineaerLayout中layout_margin失
  7. 组件属性
  8. Android 15本经典教程和150多个实例源码
  9. android EditText提示居右无法显示的问题
  10. Android有效解决加载大图片时内存溢出的