Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android LinearLayoutManager和项目移除时的重新定位_Android_Linearlayoutmanager - Fatal编程技术网

Android LinearLayoutManager和项目移除时的重新定位

Android LinearLayoutManager和项目移除时的重新定位,android,linearlayoutmanager,Android,Linearlayoutmanager,LinearLayoutManager提供了在回收器中重新定位项目的基本实现。假设recyclerView中有以下配置: E0 | E1 E2 E3 | E4 其中|表示recyclerView的有效边界,E1上的删除将在所有重绘和动画后产生以下最终设置: E0 | E2 E3 E4 | 我需要完成一个不同的行为。基本上我想要 |E0 E2 E3 | E4 其他元素的移动取决于我删除的部分,屏幕的左侧或右侧(在本例中相对于E2)。基本上,必须将原始中心元素作为选择移动哪个零件的轴 似乎这种行为不

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

E0 | E1 E2 E3 | E4

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

E0 | E2 E3 E4 |

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

|E0 E2 E3 | E4

其他元素的移动取决于我删除的部分,屏幕的左侧或右侧(在本例中相对于E2)。基本上,必须将原始中心元素作为选择移动哪个零件的轴


似乎这种行为不容易实现。设置stackFromEnd无法解决此问题,因为在另一侧存在类似的删除问题。在运行时更改stackFromEnd值,然后再有效地调用adapter.onItemRemoved并不能解决问题。

删除时,只需调用
scrollToPositionWithOffset(adapterPositionOf(E2),offsetOf(E2))
删除时,只需调用
scrollToPositionWithOffset(adapterPositionOf(E2),offsetOf(E2))

以下链接可能值得一看:以下链接可能值得一看:谢谢。使用smoothScrollBy也可以顺利实现这一点。虽然建议的解决方案似乎是一种变通方法,但我想知道,如果对LinearLayoutManagerThankyu稍作更改,是否可以实现更干净的解决方案(也指动画)。使用smoothScrollBy也可以顺利实现这一点。虽然建议的解决方案似乎是一种变通方法,但我想知道,如果对LinearLayoutManager稍作更改,是否可以实现更干净的解决方案(也指动画)