【Android 基础】SnackBar详解

本文介绍了Android Support Design Library中的SnackBar控件,讲解了如何在项目中添加SnackBar以及两种使用方式,包括基本显示和带有Action的显示。文章还提到了SnackBar在实际应用中的实用性,例如在微信中收藏文章时的提示效果,它在某些场景下可以替代Dialog。
Snackbar是Android Support Design Library库支持的一个控件

首先,得在build.gradle文件中添加如下:

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

笔者在学习使用该控件的时候也查阅很多相关的文章。但是遇到了如下问题:
这里写图片描述
查看我的compileSdkVersion
这里写图片描述
果然,和提示描述的一致,所以我们得改成如下:
(编译的支持库版本必须相同–这样的描述不知道有没有问题

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

这样点击右上角Sync New即可。

现在正式说说SnackBar常见的两种使用方式:

其中,Snackbar使用的时候需要一个控件容器用来容纳Snackbar.官方推荐使用CoordinatorLayout这个另一个Android Support Design Library库支持的控件容纳。因为使用这个控件,可以保证Snackbar可以让用户通过向右滑动退出。但是这里先使用最简单的方式,直接 用当前Activity的布局LinearLayout作为承载SnackBar的容器。
如下:

public class MainActivity extends AppCompatActivity {
    private LinearLayout lly;//承载SnackBar的父布局
                      .
                      .
                      .
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lly = (LinearLayout)findViewById(R.id.id_main_layout);
                      .
                      .
                      .

方式一:

   Snackbar.make(lly,"再按一下,退出应用",Snackbar.LENGTH_SHORT).show();

效果如图:
这里写图片描述

方式二:

 Snackbar.make(lly,"SnackBar测试",Snackbar.LENGTH_SHORT)
                    .setAction("详情", new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            Snackbar.make(lly,"ActionClick",Snackbar.LENGTH_SHORT).show();
                        }
                    }).show();

这样弹出带有”SnackBar测试”字样的同时,右边还有“详情”字样可以点击,该例子如上代码所示,点击“详情”将再次触发一个普通SnackBar显示ActionClick字样。
效果如图:
这里写图片描述

其实微信也有这样的设置,当你收藏一篇文章的时候,下方就会弹出一个Snackbar并带有“已收藏”,“添加标签”字样。的确很实用,在某些场景是可以替代“古老的”Dialog了。

如:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值