【问题标题】:Android LinearLayoutManager and relocation on item removalAndroid LinearLayoutManager 和移除项目时的重定位
【发布时间】:2016-05-03 15:14:56
【问题描述】:

LinearLayoutManager 提供了在回收器中重新定位项目的基本实现。假设recyclerView中的配置如下:

E0 | E1 E2 E3 | E4

在哪里 |表示recyclerView的有效边界,E1上的delete将在所有重绘和动画之后导致以下最终设置:

E0 | E2 E3 E4 |

我需要完成不同的行为。基本上我想要

| E0 E2 E3 | E4

其他元素的移动基于屏幕的左侧或右侧(在本例中相对于 E2),我已经进行了删除。基本上必须将原始中心元素作为选择要移动的部分的枢轴。

似乎这种行为并不容易实现。设置 stackFromEnd 并不能解决问题,因为我们在对面有类似的移除问题。在有效调用 adapter.onItemRemoved 之前在运行时更改 stackFromEnd 值也不能解决问题。

【问题讨论】:

标签: android linearlayoutmanager


【解决方案1】:

删除时,只需致电scrollToPositionWithOffset(adapterPositionOf(E2), offsetOf(E2))

【讨论】:

  • 谢谢。使用 smoothScrollBy 也可以顺利实现。尽管提议的解决方案似乎是一种解决方法,但我想知道是否可以通过对 LinearLayoutManager 进行一些更改来实现更简洁的解决方案(也指动画)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-23
  • 1970-01-01
  • 2013-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多