Android Material Design 控件 Snackbar

本文详细介绍了Android中Snackbar的使用方法,包括基本显示、添加Action、自定义颜色、设置时长及监听回调等。通过示例代码展示了Snackbar的各种定制技巧,并提供了显示规则的说明。了解这些,能让你更好地在Android应用中实现通知和交互功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 开始使用
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 默认颜色
默认是<item name="colorAccent">@color/colorAccent</item>

  • 定义显示时长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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

louisgeek

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值