Twowayview在滚动时自动添加填充

Suj*_*ith 6 android android-recyclerview

我在我的一个项目中使用Twowayview.这是androids Recyclerview库的扩展.(具有垂直水平交错,可跨越网格和列表视图等功能).有时滚动时网格视图中的项目会消失(即,每次滚动时自动添加填充,并且所有项目滚动到我们滚动的一侧).这是一种没有经历过的随机行为.

观看此视频,Recyclerview滚动问题

请在下面的链接中找到有关此问题的其他参考,

填充问题#140

当我们使用新项添加或删除适配器时,通常会发生此自动填充问题.

请找到我在下面使用的具有属性的小部件

<org.lucasr.twowayview.TwoWayView
android:id="@+id/spannable_grid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animationCache="false"
android:scrollbarAlwaysDrawHorizontalTrack="false"
android:scrollbarSize="0px"
android:scrollbars="none"
android:scrollingCache="false"
app:layoutManager="SpannableGridLayoutManager"
app:numColumn="6"
app:numRow="6" />
Run Code Online (Sandbox Code Playgroud)

我找到了一些解决方案,比如从Twowayview,CliptoPadding等移除填充物.但这些都不适合我.我使用的是Recyclerview版本21.0.0.有人遇到过这个问题吗?如何解决这个问题?

lal*_*lal 5

我正在通过Ish转发答案

首先,你必须使用TwoWay-View库的代码而不是jar.

  1. 打开库的布局文件夹.
  2. 浏览包org.lucasr.twowayview.widget
  3. 打开BaseLayoutManager类
  4. 跳转到行号 362
  5. 你会发现代码为

if(anchorItemPosition> 0 &&(refreshLanes ||!restoringLanes)){

用这个替换这一行

if(anchorItemPosition> 0 && refreshLanes &&!restoringLanes){BaseLayoutManager类的上述更改为我工作,作为上述问题的解决方案.

希望这将有助于所有TwoWay-View用户.


小智 0

当 State().getTargetScrollPosition() 可能超出预期范围时,您是否尝试添加自定义 onScrollListener 来纠正它?