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;
            }
        });

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

你可能感兴趣的:(CoordinatorLayout和AppBarLayout 嵌套滑动时有时appbarlayout无法滑动问题)