Android LinearLayoutManager和项目删除时的重定位

时间:2016-01-26 21:28:35

标签: android linearlayoutmanager

LinearLayoutManager提供了一个基本实现,用于重定位回收器中的项目。假设recyclelerView中有以下配置:

E0 | E1 E2 E3 | E4

其中|表示recyclelerView的有效范围,E1上的删除将在所有重绘和动画后产生以下最终设置:

E0 | E2 E3 E4 |

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

| E0 E2 E3 | E4

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

似乎这种行为不容易实现。设置stackFromEnd并不能解决问题,因为我们在另一侧有删除模拟问题。在有效地调用adapter.onItemRemoved之前,还在运行时更改stackFromEnd值并不能解决问题。

1 个答案:

答案 0 :(得分:0)

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