CoordinatorLayout

在滑动的时候出现TabLayout还没到顶部的时候RecyclerView就会滑动的情况。

分析原因,RecyclerView快速滑动是在onTouchEvent的ACTION_UP里面调用fling。

fling方法里调dispatchNestedPreFling,如果它返回false,就快速滚动。dispatchNestedPreFling调用CoordinatorLayout的onNestedPreFling方法,返回布尔对象handled。如果handled为true,就表明CoordinatorLayout来处理事件,RecyclerView不处理。

onNestedPreFling遍历child的Behavior的onNestedPreFling方法,并把结果取或,就是说只要有一个返回true,handled就为true。

查看AppBarHeaderBehavior的onNestedPreFling,让滑动距离小于AppBarLayout.getTotalScrollRange的时候返回true,这样在没有滑动到顶部之前RecyclerView就不会处理事件。

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

推荐阅读更多精彩内容