donkingliang / GroupedRecyclerViewAdapter

GroupedRecyclerViewAdapter可以很方便的实现RecyclerView的分组显示,并且每个组都可以包含组头、组尾和子项;可以方便实现多种Type类型的列表,可以实现如QQ联系人的列表一样的列表展开收起功能,还可以实现头部悬浮吸顶功能等。
Apache License 2.0
1.65k stars 216 forks source link

当子列表很大的时候,滑动列表,滑动条位置显示的很突兀。 #90

Open war911 opened 1 year ago

war911 commented 1 year ago

当子列表很大的时候。 滑动列表过程中,滑动条很突然的发生位移(没有QQ联系人列表滑动条那么平滑)。。。

war911 commented 1 year ago

更正一下是, 子列表中 某item 超大的时候,(多布局某item 超过一屏)

war911 commented 1 year ago

[Uploading bug.webm…]()

war911 commented 1 year ago

https://user-images.githubusercontent.com/36250574/201887824-ff467c56-458f-41e7-acbb-ea6c00fdf796.mp4

donkingliang commented 1 year ago

这是RecyclerView本身存在的问题,因为RecyclerView计算内容总高度时,是显示的item平均高度 * item总数。所以如果有一个item的高度远大于其他item时,就会出现这种问题。你可以通过复写LayoutManager的computeScrollRange的方法把这个item的高度加上

war911 commented 1 year ago

computeVerticalScrollRange computeVerticalScrollOffset computeVerticalScrollExtent 重写了这些然后,没算明白,┭┮﹏┭┮

donkingliang commented 1 year ago

computeScrollRange这个方法,super.computeScrollRange + 大item的高度(前提是你知道这个高度)。 其他两个方法不用重写