recyclerview添加多个header,其中一个header中包含recyclerview时候,返回顶部失效,返回的位置是header的recyclerview位置,不是0
Q
[CymChad/BaseRecyclerViewAdapterHelper]添加header中包含recyclerview时候,返回顶部失效
6
A
回答
6
你是说addHeaderView返回值吗?这个跟添加的view是什么无关的
5
@1109993488 不是,是recyclerView.getLayoutManager().scrollToPosition(0);这种返回顶部失效,返回的scrollY不是0,onScroll方法执行两次,第一次是0,第二次不是0
7
恩,大概明白了,你这种情况是ViewPager 多个页面切回来 先移动到内部RecyclerView,然后又移动到了0?
4
@1109993488 不是,没有viewpager,就是说recyclerview的header也是recyclerview情况时,scrollToPosition(0)定位到的位置不是最顶部,差个几十dp
3
我说的是自动滚动到RecyclerView的位置(比如显示的时候自动滚动到内部RecyclerView的位置,焦点问题,可能跟你的还不一样),你调用的scrollToPosition(0)是什么时候触发的?你的这个几十dp是不是正好显示内部RecyclerView的位置?
0
就好比说我添加了俩header,第一个是普通的ImgeView,第二个是recyclerview的,当我点击返回顶部按钮,他定位到的是我第二个header位置,我怀疑是焦点问题
4
mRecyclerView.smoothScrollToPosition(0);
4
如果你不想要从下滑到上的动画效果你可以
mRecyclerView.getLayoutManager().scrollToPosition(0);
mRecyclerView.smoothScrollToPosition(0);
6
解决了,是recyclerview嵌套滑动冲突了
2
真正的解决办法应该是 设置内嵌的recyclerview 去除焦点 recyclerview.setFocusableInTouchMode(false); recyclerview.requestFocus();