Snackbar 是 Android design support library 中的另一个组件,就是屏幕底部快速的显示一条消息,大体与 Toast 相同,但是很灵活。使用的话需要先导入design库:
compile 'com.android.support:design:26.0.0-alpha1'
用法很简单:
Snackbar.make(view,String,time).show();
第一个参数是一个 view,snackbar 会找到一个父 view,以寄存所赋的 snackbar 值。Snackbar 会沿着 view 的树状路径,找到第一个合适的布局或窗口视图,作为父 view。所有这里随便赋予什么view都可以,但是最好是相对外层的view。
第二个参数就是字符串,就是需要提示的信息文本。
第三参数是时长,这里有三种:Snackbar.LENGTH_SHORT,Snackbar.LENGTH_LONG,Snackbar.LENGTH_INDEFINITE。前面两种和Toast一样,最后这一种是一直显示直到你手动取消显示。
一般都还会需要设置一个点击事件:
//"文字"会显示在整个Snackbar的右侧
.setAction("文字", new View.OnClickListener() {
@Override
public void onClick(View v) {
//点击之后的操作,在点击之后Snackbar会自动消失
}
})
当然免不了有些坑是需要自己动手才能发现的,如果Snackbar所在的Activty不是继承AppCompatActivity就会报错
Binary XML file line #41: Binary XML file line #41: Error inflating class <unknown>
这个时候你只需要将Snackbar所在的Activity继承自AppCompatActivity就好了,并且需要manifest文件中设置该Activty的主题为
android:theme="@style/Theme.AppCompat" //有标题栏
android:theme="@style/Theme.AppCompat.NoActionBar" //无标题栏