0

我在我的應用程序中使用了回收視圖。在相對佈局中,我在回收視圖上方有一個按鈕用於更改佈局管理器。它首先顯示網格佈局管理器,當點擊一個按鈕時,它顯示Linearlayoutmanager。在我改變佈局管理器的同時,再次回收視圖從第一個位置開始。Recyclerview在更改佈局後保持滾動位置

誰能幫我保持的位置,因爲它是使在動態佈局管理的變化是什麼時候?

+0

你嘗試'RecyclerView#scrollToPosition(INT位置)'? – nshmura

+0

我不想顯示滾動 –

+0

scrollToPosition不顯示滾動。此方法名稱有點複雜。 – nshmura

回答

3

你要記住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); 
      } 
     }); 
+0

我會試試這個 –

+0

謝謝@david這個答案很有幫助 –

相關問題