Twowayview在滚动时自动添加填充

时间:2015-02-10 12:19:31

标签: android android-recyclerview

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

观看此视频,Recyclerview scroll issue

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

Padding problem #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" />

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

2 个答案:

答案 0 :(得分:5)

我正在通过Ish

重新发布答案

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

  1. 打开库的布局文件夹。
  2. 浏览包org.lucasr.twowayview.widget
  3. 打开BaseLayoutManager类
  4. 跳转到行号。 362
  5. 您将找到代码
  6. if(anchorItemPosition&gt; 0&amp;&amp;(refreshLanes ||!restoringLanes))   {

    用这一行替换这一行

    if(anchorItemPosition&gt; 0&amp;&amp; refreshLanes&amp;&amp;!restoringLanes){ BaseLayoutManager类的上述更改对我来说是一个解决上述问题的方法。

    希望这会对所有TwoWay-View用户有所帮助。

答案 1 :(得分:0)

您是否尝试添加自定义onScrollListener以在其State()。getTargetScrollPosition()可能超出预期范围时更正它?