首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >改变布局后保持滚动位置

改变布局后保持滚动位置
EN

Stack Overflow用户
提问于 2016-07-27 19:12:28
回答 1查看 2.2K关注 0票数 1

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

当在布局管理器中进行动态更改时,是否有人可以帮助我保持该位置不变?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-27 20:04:43

你必须记住firstVisibleItem,并在更改LayoutManager后滚动到该位置,它工作得很好,我刚刚自己尝试了一下:

例如,Button单击以更改LayoutManager

代码语言:javascript
运行
复制
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);
           }
       });
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38611348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档