Recycler视图 - 滚动时调整项目视图大小(对于类似旋转木马的效果)

时间:2016-12-23 20:37:31

标签: java android performance android-layout android-recyclerview

我需要创建一个垂直的Recyclerview,其中应该调整屏幕中心的项目视图,以便在滚动时具有缩放效果。

我尝试但没有奏效的事情:

  1. 添加滚动侦听器并按位置循环浏览项目视图,测量居中位置,然后更新居中LayoutParams的{​​{1}}。

    • view不会在滚动时计算项目的位置或更新视图。如果在RecyclerView
    • 中执行此类操作,则会抛出IllegalStateException
  2. 在滚动状态为onScrolledLayoutParams时,在onScrollStateChanged中更改居中项目视图的IDLE

    • 仅在滚动完成后才更新视图,而不是在滚动项目时进行更新。
  3. 最后一个选项是实现自己的自定义SETTLING,它会扩展默认LayoutManager

    • 据我所知,实现自定义LayoutManager涉及处理需要处理的更复杂的计算。
  4. 我们将不胜感激。

1 个答案:

答案 0 :(得分:53)

我找到了this answer on SO,它横向完成了同样的事情。答案提供了一个扩展getApplicationUsage()的工作解决方案。我修改了一下以适应垂直列表并且它可以工作。如果实施中有任何错误,请在评论中告诉我。干杯!

自定义布局管理器:

LinearLayoutManager

水平方向: enter image description here

垂直方向:

enter image description here