我的活动包含设计库23.0.1提供的AppBarLayout,它在我向上滚动时隐藏.我有一个RecyclerView,每个子项目也包含一个RecyclerView,基本上是一个嵌套的RecyclerView.
我的问题是,当我触摸任何内部RecyclerView的孩子并向上滚动时,AppBar不会隐藏.但是,如果我将手指放在其他地方(不在内部RecyclerView上)并滚动,则应用栏会向上滚动.为什么会这样?我甚至尝试为内部回收站视图添加appbar行为,但是当我触摸其他地方并滚动时,应用栏只会向上滚动.
注意:内部的recyclerview有一组固定的项目,这些项目在任何时候都是可见的,基本上,在recyclerview中没有滚动.
有一个similar question,提供的解决方案是拦截内部回收站视图的触摸并将其传递给父回收站视图.但是这会禁用内部回收站视图中子项的单击事件,我不希望这样.
解决方法
对于内部回收器视图,您需要将嵌套滚动标志设置为false.
mSomeInnerRecyclerView.setNestedScrollingEnabled(假);