CoordinatorLayout和AppBarLayout 嵌套滑动时有时appbarlayout无法滑动问题

问题描述

这次在项目开发时appbarlayout高度比较高, 高概率遇到appbarlayout无法滑动的问题.

原因分析

研究了一阵子, 觉得CoordinatorLayout和appbarlayout的组合, 一点都不省心, 各种先天bug.

具体原因分析后面补上.
@todo

解决方法

直接为appbarlayout设置一个永远返回true的DragCallback

 AppBarLayout appBarLayout = mRootView.findViewById(R.id.smooth_app_bar_layout);

        CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams();
        AppBarLayout.Behavior behavior = (AppBarLayout.Behavior) layoutParams.getBehavior();

        behavior.setDragCallback(new AppBarLayout.Behavior.DragCallback() {
            @Override
            public boolean canDrag(@NonNull AppBarLayout appBarLayout) {
                return true;
            }
        });

评论区小伙伴说这段代码可能会出现空指针, 并给出解决方法. 感谢了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容