Android Recyclerview在更改布局后保持滚动位置

Android Recyclerview在更改布局后保持滚动位置,android,android-layout,android-recyclerview,Android,Android Layout,Android Recyclerview,我正在应用程序中使用回收视图。我有一个按钮上面的回收视图在相对布局更改布局管理器。它首先显示栅格布局管理器,单击按钮时显示Linearlayoutmanager。当我更改布局管理器时,循环视图再次从第一个位置开始 在动态更改layout manager时,有人能帮我保持位置不变吗?您必须记住第一个VisibleItem,并在更改layout manager后滚动到该位置它工作正常我只是自己尝试了一下: 例如,单击按钮更改布局管理器: 您是否尝试了RecyclerViewScrollToposit

我正在应用程序中使用回收视图。我有一个按钮上面的回收视图在相对布局更改布局管理器。它首先显示栅格布局管理器,单击按钮时显示Linearlayoutmanager。当我更改布局管理器时,循环视图再次从第一个位置开始

在动态更改layout manager时,有人能帮我保持位置不变吗?

您必须记住第一个VisibleItem,并在更改layout manager后滚动到该位置它工作正常我只是自己尝试了一下:

例如,单击按钮更改布局管理器:


您是否尝试了RecyclerViewScrollToposition位置?我不想显示滚动CrollToposition不显示滚动。这个方法名有点复杂。谢谢@david这个答案很有帮助
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);
           }
       });