Snackbar的的内容有以下三点:
1、和Toast一样的用法Snackbar.make(View view, CharSequeence text, int duration),参数数中的view可以是任何view,如果CoordinatorLayout话可以右滑隐藏。
2、可以在设置显示内容的侧的action,并且添加其点击事件。
3、可以设置Callback。在Snackbar的显示隐藏中做相应的操作。
具体代码如下:
//snackbar snackbar_tv= (TextView) findViewById(R.id.snackbar_tv); cool= (CoordinatorLayout) findViewById(R.id.cool); snackbar_tv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Snackbar ss=Snackbar.make(cool,"snackbar demo",Snackbar.LENGTH_SHORT).setAction("按钮", new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(mContext,"snackbar 的demo",Toast.LENGTH_SHORT).show(); } }); ss.setCallback(new Snackbar.Callback() { @Override public void onDismissed(Snackbar snackbar, int event) { super.onDismissed(snackbar, event); Toast.makeText(mContext,"snackbar 消失",Toast.LENGTH_SHORT).show(); } @Override public void onShown(Snackbar snackbar) { super.onShown(snackbar); Toast.makeText(mContext,"snackbar 显示",Toast.LENGTH_SHORT).show(); } }); ss.show(); } });
布局代码:
<android.support.design.widget.CoordinatorLayout android:id="@+id/cool" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/snackbar_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="20dp" android:background="@android:color/white" android:padding="10dp" android:text="Snackbar" android:textColor="@color/text_main_color" android:textSize="@dimen/middle" /> </android.support.design.widget.CoordinatorLayout>
此处注意Snackbar是显示在CoordinatorLayout的底部。如果此布局把layout_height改为wrap_content,Snackbar的显示不是在屏幕的底部,而是屏幕的上方,一个此时CoordinatorLayout的底部并不是屏幕的底部。