我在我的應用程序中使用了回收視圖。在相對佈局中,我在回收視圖上方有一個按鈕用於更改佈局管理器。它首先顯示網格佈局管理器,當點擊一個按鈕時,它顯示Linearlayoutmanager。在我改變佈局管理器的同時,再次回收視圖從第一個位置開始。Recyclerview在更改佈局後保持滾動位置
誰能幫我保持的位置,因爲它是使在動態佈局管理的變化是什麼時候?
我在我的應用程序中使用了回收視圖。在相對佈局中,我在回收視圖上方有一個按鈕用於更改佈局管理器。它首先顯示網格佈局管理器,當點擊一個按鈕時,它顯示Linearlayoutmanager。在我改變佈局管理器的同時,再次回收視圖從第一個位置開始。Recyclerview在更改佈局後保持滾動位置
誰能幫我保持的位置,因爲它是使在動態佈局管理的變化是什麼時候?
你要記住firstVisibleItem
,並通過自己的改變,它工作正常我只是想出來的佈局管理後滾動到位置:
例如Button
點擊改變LayoutManager
:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int i = ((LinearLayoutManager) rcView.getLayoutManager()).findFirstVisibleItemPosition();
if(rcView.getLayoutManager() instanceof GridLayoutManager) {
rcView.setLayoutManager(new LinearLayoutManager(MainActivity.this));
} else {
rcView.setLayoutManager(new GridLayoutManager(MainActivity.this, 3));
}
rcView.scrollToPosition(i);
}
});
我會試試這個 –
謝謝@david這個答案很有幫助 –
你嘗試'RecyclerView#scrollToPosition(INT位置)'? – nshmura
我不想顯示滾動 –
scrollToPosition不顯示滾動。此方法名稱有點複雜。 – nshmura