解决 SnackBar 在 Design Support Library 23.0.0 上的滑动问题

感觉 Google 就是坑啊,放出的 Design Support Library 有各种 bug 已经不是第一次了……其实一旦接受了这个设定,也感觉萌萌哒(误)

然后咧,这一次,如果 SnackBar.make() 里的 root view 含有 AppBarLayout 的话,滑动删除 SnackBar 就会导致 NullPointerException = =

搜索了各种资料,终于在 stackoverflow 上找到解决方案了,非常简单

首先新建一个类继承 AppBarLayout.Behavior 并重写 onInterceptTouchEvent 方法

public class AppBarLayoutBehavior extends AppBarLayout.Behavior {

    @Override
    public boolean onInterceptTouchEvent(CoordinatorLayout parent, AppBarLayout child,
            MotionEvent ev) {
        return !(parent != null && child != null && ev != null) || super
                .onInterceptTouchEvent(parent, child, ev);
    }
}

然后让自己的 AppBarLayout 使用我们重写后的 Behavior 就好啦

((CoordinatorLayout.LayoutParams) findViewById(R.id.appbar).getLayoutParams())
                .setBehavior(new AppBarLayoutBehavior());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值