2016-01-26 17 views
1

LinearLayoutManager爲重新定位回收站中的項目提供了一個基本實現。假設recyclerView中的以下配置:Android LinearLayoutManager和項目移除時的重定位

E0 | E1 E2 E3 | E4

其中|代表recyclerView的有效邊界,在E1上的刪除將在所有重繪和動畫之後產生以下最終設置:

E0 | E2 E3 E4 |

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

| E0 E2 E3 | E4

根據屏幕的哪一部分,左側或右側(相對於本例中的E2)移動其他元素,我已經做了刪除操作。基本上原始的中心元素必須作爲選擇哪個部分移動的樞軸。

似乎這種行爲不容易實現。設置stackFromEnd不能解決問題,因爲我們在對面的清除方面存在模擬問題。在有效地調用adapter.onItemRemoved之前,還要在運行時更改stackFromEnd值並不能解決問題。

+0

以下鏈接可能值得一看:http://www.birbit.com/recyclerview-animations-part-2-behind-the-scenes/ – ap6491

回答

0

當你刪除,只需撥打scrollToPositionWithOffset(adapterPositionOf(E2), offsetOf(E2))

+0

謝謝。 smoothScrollBy同樣可以順利實現。雖然提出的解決方案似乎是一種解決方法,但我想知道是否可以通過LinearLayoutManager中的一些更改實現更清晰的解決方案(也稱爲動畫) –

相關問題