LinearLayoutManager提供了一个基本实现,用于重定位回收器中的项目。假设recyclelerView中有以下配置:
E0 | E1 E2 E3 | E4
其中|表示recyclelerView的有效范围,E1上的删除将在所有重绘和动画后产生以下最终设置:
E0 | E2 E3 E4 |
我需要完成不同的行为。基本上我想要
| E0 E2 E3 | E4
基于屏幕的哪个部分,左侧或右侧(在这种情况下相对于E2)移动其他元素,我已经删除了。基本上,必须将原始中心元素作为枢轴,以选择要移动的部分。
似乎这种行为不容易实现。设置stackFromEnd并不能解决问题,因为我们在另一侧有删除模拟问题。在有效地调用adapter.onItemRemoved之前,还在运行时更改stackFromEnd值并不能解决问题。
答案 0 :(得分:0)
删除后,只需致电scrollToPositionWithOffset(adapterPositionOf(E2), offsetOf(E2))
。