[CymChad/BaseRecyclerViewAdapterHelper]有关多类型adapter自动滚动问题

2024-08-08 590 views
3

9c2f76d23ddd62b5f3a3bfb5f69897d0.zip 您好,我把效果图录制成了视频。。我的首页是一个多类型的adapter,当滑动首页到某个位置时,点击分类切换fragment,有重新点击首页,recyclerView自动滚动到最近类型的头部(头部没有recyclerView),同时我也看了有关自定滚动的其他问题尝试了 mRecyclerView.getLayoutManager().scrollToPosition(0); mRecyclerView.smoothScrollToPosition(0);也没有用,望提示解决方案,谢谢

回答

8

遇到同样的问题,在根RecyclerView加

android:focusable="true"
android:focusableInTouchMode="true"

还是不起作用

2

@Mrxxy 看了好多相关的历史问题,都是焦点问题,但是想不到办法去解决,这就是尴尬 好多mRecyclerView.getLayoutManager().scrollToPosition(0); mRecyclerView.smoothScrollToPosition(0);用这个就能解决

6

@Troll4it 我看之前的issue,然后试了这方法还是不行,它会滚到HeadView的下面的第一个item的位置。我的布局是这样的HeadrView(是个ViewPager) + 横向的RecyclerView + 纵向的Item

5

@Mrxxy
android:focusable="true" android:focusableInTouchMode="true" 你这样做是不行的,偶尔会报下面的异常 java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 1(offset:2).state:2

7

@FrankKwok @CymChad 你好。。自己尝试了一些办法,没有得到解决。想了解下,在处理recycleView嵌套recycleView,和recycleView加头界面自动滚动的问题的一些解决办法。。谢谢

3

记录位置下次进入页面移动到记录的位置可以吗?

2

@FrankKwok 测试了下,能记录到但是还是在乱滚动

9

@Mrxxy 完美解决焦点问题,哥们你可以去试下 在最外层的recyclerView布局文件中加上descendantFocusability属性的值有三种: beforeDescendants:viewgroup会优先其子类控件而获取到焦点

afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

同时也感谢 @FrankKwok @CymChad的指导,谢谢

5

👍 @Troll4it

1

@Troll4it 好了,谢了

0

@Troll4it ,谢了,大兄弟