Material Design系列之SnackBar

本文介绍了Android中Material Design风格的SnackBar控件,与Toast相似但更友好。详细讲解了SnackBar的简单使用,包括两种显示模式,以及如何设置显示时长。此外,还深入探讨了设置小按钮、自定义字体颜色和监听显示隐藏状态的高级用法。

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

学习控件当然要从最简单的开始了,一口吃不成一个胖子(当然我怎么吃也吃不胖,这是最气的)。
话不多说,开始学习控件了,最简单的SnackBar,它当于Toast,使用方法也差不多,找Google的说法来说,比Toast更友好一点。

不难,就把分步写了。
添加依赖包,不添加依赖包的话,默认是没有的。。。

    compile 'com.android.support:design:24.1.1'

好了,依赖包添加完成了之后就可以愉快的使用了,

简单使用?

第一种显示方式

第一种显示模式呢,跟Toast一样,直接设置两种显示时长就可以了

    Snackbar.make(view,"SnackBar",Snackbar.LENGTH_SHORT).show();
    Snackbar.make(view,"SnackBar",Snackbar.LENGTH_LONG).show();

是不是和Toast没什么两样?还有一种显示模式,这个模式感觉挺棒的,自由啊。

第二种显示模式

这个就高端一点了,能自定义显示时长

    Snackbar.make(view,"SnackBar", Snackbar.LENGTH_INDEFINITE)
                .setDuration(2000)
                .show();

看到没,LENGTH_INDEFINITE,这个参数是不确定的值,如果只是设置了这个参数而没有设置显示时间的话,那它就会一直显示。。。
可是我不想让它一直显示怎么办-_-! 简单,有看到.setDuration(2000) 这个方法没,没看到?你在仔细看看,这个方法就是设置显示时长的,参数是毫秒值。

setDuration()方法注意事项

一旦使用了这个方法,那么你在make方法中最后一个参数设置的显示模式将失效,显示时长会* 按照setDuration()*这个方法设置的值进行显示。

高级点的用法?

设置一个小按钮

别人显示的SnackBar都有撤销小按钮,咱不能没有啊,看代码先。

    Snackbar.make(view, "SnackBar", Snackbar.LENGTH_INDEFINITE)
                .setAction("撤销", new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                    }
                })
                .setDuration(2000)
                .show();

SnackBar.png

看,就是设置一个action,就显示出来了一个小的,可点击的文字,参数解释?
第一个参数是显示出来的文字,第二个是点击之后的事件,要进行什么操作就在这里执行。
如果设置两次action会已最后一次设置的action为准

小按钮默认字体颜色不好看?

setActionTextColor(Int color)使用这个方法设置字体颜色。

显示隐藏监听

和Toast不同的是,SnackBar提供了一个Callback方法用来监听SnackBar的显示与隐藏。你可以在这些回调方法中做一些操作。

    setCallback(new Snackbar.Callback() {
                    @Override
                    public void onDismissed(Snackbar snackbar, int event) {
                        super.onDismissed(snackbar, event);
                    }

                    @Override
                    public void onShown(Snackbar snackbar) {
                        super.onShown(snackbar);
                    }
                })

* 好了,SnackBar到此就结束了。*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值