Android Material Design 控件 Snackbar

  • 开始使用
compile 'com.android.support:design:25.3.1'
  • 基本使用
Snackbar.make(view, "Snackbar", Snackbar.LENGTH_SHORT).show();
  • 加入Action动作
Snackbar.make(rootLayout,"Snackbar",Snackbar.LENGTH_SHORT).
    setAction("点我", new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(MainActivity.this,"test click ",Toast.LENGTH_SHORT).show();
          }
  }).show();
  • 自定义背景颜色
 snackbar.getView().setBackgroundColor(Color.RED);
  • 自定义提示文字颜色
//方法 1
((TextView) snackbar.getView().findViewById(R.id.snackbar_text)).setTextColor(Color.RED);

//方法2
ViewGroup viewGroup = (ViewGroup) snackbar.getView();
      SnackbarContentLayout contentLayout = (SnackbarContentLayout) viewGroup.getChildAt(0);
      TextView textView = (TextView) contentLayout.getChildAt(0);
      textView.setTextColor(Color.RED);
  • 自定义Action文字颜色
 snackbar.setActionTextColor(Color.RED));

//ColorStateList  api
ColorStateList csl = (ColorStateList) 
getResources().getColorStateList(Color.RED); 
mSnackBar.setActionTextColor(csl);

//action 默认颜色
默认是@color/colorAccent

  • 定义显示时长duration
LENGTH_LONG 显示2750毫秒
LENGTH_SHORT 显示1500毫秒
LENGTH_INDEFINITE 一直展示,直到它被dismiss掉,或者是下一个Snackbar被显示时。
  • 设置回调监听
Snackbar.make(view,"test ",Snackbar.LENGTH_SHORT).setCallback(newSnackbar.Callback() {
@Override
public void onShown(Snackbar snackbar) {
super.onShown(snackbar);
//
}
@Override
public voidonDismissed(Snackbar snackbar,int event) {
super.onDismissed(snackbar, event);
//
/**
*event :
DISMISS_EVENT_SWIPE:滑动Snackbar使其消失
DISMISS_EVENT_ACTION:点击Snackbar上定义的Action
DISMISS_EVENT_TIMEOUT:到了设置的Duration时间后,超时消失
DISMISS_EVENT_MANUAL:调用了dismiss()使其消失
DISMISS_EVENT_CONSECUTIVE:有下一个Snackbar需要显示
*/
}
}).show();
  • 显示规则

1.如果在布局中有CoordinatorLayout,那View就是CoordinatorLayout
2.如果没有CoordinatorLayout,我们就先找到一个id为android.R.id.content的FrameLayout(这个布局是最底层的根布局),将View设置为该FrameLayout;
3.遍历视图树直到找到一个合适的容器作为载体

  • 参考文档

  • 没时间解释了,快使用Snackbar!——Android Snackbar花式使用指南 http://www.jianshu.com/p/cd1e80e64311

  • Android Design Support Library系列之五:Snackbar的使用 http://www.jianshu.com/p/43421c9b7289

你可能感兴趣的:(Android Material Design 控件 Snackbar)