不要在添加或删除项时更新RecyclerView滚动位置
创始人
2025-01-11 04:30:43
0

为了避免在添加或删除项时改变RecyclerView的滚动位置,您可以使用以下方法:

在创建RecyclerView时,使用LinearLayoutManager.setStackFromEnd(false)来避免将新项目显示在底部。

LinearLayoutManager layoutManager = new LinearLayoutManager(this); layoutManager.setStackFromEnd(false); recyclerView.setLayoutManager(layoutManager);

在添加或删除项目之前,您可以使用getFirstVisibleItemPosition()和findLastCompletelyVisibleItemPosition()方法来获取RecyclerView的可见范围(即滚动位置),并在操作完成后使用scrollToPositionWithOffset方法来恢复它。例如:

int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition(); int lastVisibleItemPosition = layoutManager.findLastCompletelyVisibleItemPosition(); adapter.addItem(); adapter.notifyItemInserted(position); // position is the position of newly added item recyclerView.post(new Runnable() {     @Override     public void run() {         layoutManager.scrollToPositionWithOffset(firstVisibleItemPosition, 0);     } });

请注意,如果您在更新RecyclerView滚动位置之前调用notifyItemInserted()或notifyItemRemoved()方法,则可能会导致滚动位置不正确。因此,您应该使用post()方法来稍后更新滚动位置。

相关内容

热门资讯

透视ai(wpk发牌逻辑)德扑... 透视ai(wpk发牌逻辑)德扑ai智能(详细辅助安装教程)原本有挂1、在wpk发牌逻辑ai机器人技巧...
wepoke模拟器!wpk俱乐... 自定义wepoke模拟器系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,不...
透视好友(德扑之星作弊)德扑计... 1、透视好友(德扑之星作弊)德扑计算胜率软件(详细辅助必备教程)素来存在有挂;代表性(透视辅助软件透...
wpk俱乐部!poker wo... wpk俱乐部!poker world外挂,(wepoKE)最初真的是有挂(详细透视普及教程)1、很好...
透视代打(aa扑克辅助)wpk... 透视代打(aa扑克辅助)wpk数据统计(详细辅助AI教程)原来存在有挂是一款可以让一直输的玩家,快速...
aapoker俱乐部!wpk透... aapoker俱乐部!wpk透视辅助合作,(来玩德州app)都是真的是有挂(详细透视技巧教程);支持...
透视科技(aapoker辅助工... 透视科技(aapoker辅助工具存在)哈糖大菠萝有辅助吗(详细辅助透明挂教程)其实是真的有挂;人气非...
wepoke黑科技!微扑克有辅... wepoke黑科技!微扑克有辅助软件吗,(wEpOke)原生是真的有挂(详细辅助大神讲解)科技教程也...
辅助透视(智星德州菠萝辅助器)... 辅助透视(智星德州菠萝辅助器)wepoke游戏数据有说法吗(详细辅助科技教程)一直是有挂1、这是跨平...
微扑克有辅助挂!aapoker... 微扑克有辅助挂!aapoker在哪里下载,(微扑克)好像是真的有挂(详细辅助微扑克教程);建议优先通...