我在我的应用程序中使用循环视图。我在相对布局中的循环视图上方有一个按钮,用于更改布局管理器。它首先显示网格布局管理器,当单击一个按钮时,它显示Linearlayoutmanager。当我改变布局管理器时,循环视图再次从第一个位置开始。
当在布局管理器中进行动态更改时,是否有人可以帮助我保持该位置不变?
发布于 2016-07-27 20:04:43
你必须记住firstVisibleItem
,并在更改LayoutManager后滚动到该位置,它工作得很好,我刚刚自己尝试了一下:
例如,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);
}
});
https://stackoverflow.com/questions/38611348
复制相似问题