【问题标题】:Save and restore item's layout state in RecycleView在 RecyclerView 中保存和恢复项目布局状态
【发布时间】:2017-08-03 10:49:54
【问题描述】:

我正在尝试使用RecycleView 构建应用程序。 RecycleView 中的每个元素都有一个复杂的布局,其中的按钮会改变颜色和动画等等。在用户“完成”当前项目并开始滚动后,该项目将被回收,我所做的布局更改将丢失。

当用户再次滚动到该项目时,我将不得不再次将布局更改为原来的样子。

是否有一种简单的方法可以保存项目的布局状态(按钮的位置和大小、视图的颜色...),然后在视图再次回收时恢复它们?

还有没有办法将布局恢复到其原始状态?当我得到一个包含我想要恢复的布局更改的回收视图时,我想使用它吗?

【问题讨论】:

  • 将该信息保存在地图中:SparseArray<CustomObject>.
  • 这行不通,因为您的参考文献会以任何方式被回收,您可以使用此链接中的技巧之一:stackoverflow.com/questions/20721752/…

标签: android android-layout android-recyclerview


【解决方案1】:

我假设您有一个用于填充 RecyclerView 适配器的元素列表。您可以保存该对象内元素的状态。在onBindViewHolder 期间,您可以根据元素对象中的状态显示适当的布局。或者您甚至可以使用 getItemViewType(position) 更改视图的整个布局。

另一种保存元素状态的方法是在单独的 Map 中而不是在 Element 对象本身中,例如:Map<ElementId, ElementState>

【讨论】:

    猜你喜欢
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-09
    • 2020-08-13
    • 2014-05-14
    • 2012-09-16
    相关资源
    最近更新 更多