问题描述
这次在项目开发时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;
}
});
评论区小伙伴说这段代码可能会出现空指针, 并给出解决方法. 感谢了