RecyclerView使用wrap_content时动画效果不佳。

16

当我的RecyclerView高度为wrap_content时,如下所示

<android.support.v7.widget.RecyclerView
    android:id="@+id/myRecyclerView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>
下面是结果:

以下是结果。

enter image description here

这是因为调整大小发生在动画之前。

https://medium.com/@elye.project/recyclerview-supported-wrap-content-not-quite-f04a942ce624 中更清楚地描述了它。

有没有一种方法可以强制先进行动画,然后再调整大小?


为什么应该使用wrap_content?如果你有更多的项目,它们将超出屏幕。为了解决这个问题,你应该用ScrollView来包裹它,但这是错误的。 - undefined
我同意你的观点,@fillobotto,对于某些情况来说,确实有办法避免使用wrap_content。然而,想象一下,如果这个功能得到支持并且克服了动画的限制,为RecyclerView设计一个带有页眉和页脚的布局就不需要更复杂的适配器来纯粹处理getItemViewType(...)了。 - undefined
谷歌上有很多代码可以让你从零开始编写。 - undefined
你找到解决方案了吗?我在这里看到一个帖子可能会有所帮助 https://dev59.com/NVoT5IYBdhLWcg3wtRYR - undefined
1个回答

0
相隔了好几年,但希望这能帮助其他面临相同问题的人。
解决这种情况的一个变通方法是,在RecyclerView的父级设置android:clipChildren="false",并在RecyclerView上设置android:clipToPadding="false"
这样做可以让从RecyclerView外部滑动进来的项目保持可见,即使RecyclerView的高度已经在调整。
注意:这取决于RecyclerView的布局父级是否为match_parent,如果不是,则必须将android:clipChildren="false"属性添加到后续的父级,直到高度设置为match_parent的父级为止,否则每个父级都会像RecyclerView本身一样隐藏从其可用高度外部动画的项目。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接