相关文章推荐
想旅行的遥控器  ·  Enumerable.GroupJoin ...·  1 年前    · 
爱看球的海龟  ·  jmeter的参数化如何设置让随机变量跟随 ...·  1 年前    · 
活泼的黄花菜  ·  Java简单url识别_java识别url_ ...·  1 年前    · 
睿智的香菇  ·  [重构实践]如何避免代码多层嵌套 - 掘金·  1 年前    · 
善良的白开水  ·  python - ...·  2 年前    · 
Code  ›  Recyclerview的notifyItemRangeInserted方法被调用,但视图未更新。
recyclerview
https://www.volcengine.com/theme/10518031-R-7-1
开朗的茄子
1 年前
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们
文档 备案 控制台
登录 立即注册
火山引擎首页
全站搜索
R
Recyclerview的notifyItemRangeInserted方法被调用,但视图未更新。

Recyclerview的notifyItemRangeInserted方法被调用,但视图未更新。

在RecyclerView中, 调用 notifyItemRangeInserted() 方法后,应该确保相关视图已经更新。以下是一个可能的解决方法示例:

// 创建一个数据集合
List<String> dataSet = new ArrayList<>();
// 初始化RecyclerView和Adapter
RecyclerView recyclerView = findViewById(R.id.recyclerView);
MyAdapter adapter = new MyAdapter(dataSet);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
// 添加数据到数据集合
dataSet.add("Item 1");
dataSet.add("Item 2");
// 通知Adapter数据集合发生了变化
adapter.notifyItemRangeInserted(0, 2);
// 确保RecyclerView已经测量和布局完成
recyclerView.post(new Runnable() {
    @Override
    public void run() {
        // 获取第一个可见的item的位置
        int firstVisibleItemPosition = ((LinearLayoutManager) recyclerView.getLayoutManager()).findFirstVisibleItemPosition();
        // 获取最后一个可见的item的位置
        int lastVisibleItemPosition = ((LinearLayoutManager) recyclerView.getLayoutManager()).findLastVisibleItemPosition();
        // 检查第一个和最后一个可见item的位置是否在添加的范围内
        if (firstVisibleItemPosition >= 0 && lastVisibleItemPosition >= 0 && firstVisibleItemPosition <= 1 && lastVisibleItemPosition <= 1) {
            // 如果在范围内,手动更新RecyclerView的布局
            recyclerView.getLayoutManager().onLayoutChildren(recyclerView.getRecycler(), recyclerView.getAdapter());

在上面的示例中,我们首先创建一个数据集合,然后初始化RecyclerView和Adapter。接下来,我们向数据集合中添加两个数据项,并调用notifyItemRangeInserted()方法通知Adapter数据集合发生了变化。

 
推荐文章
想旅行的遥控器  ·  Enumerable.GroupJoin 方法 (System.Linq) | Microsoft Learn
1 年前
爱看球的海龟  ·  jmeter的参数化如何设置让随机变量跟随 线程组/线程/每个请求 变化?_jmeter参数 如何设置每次出现都变化-CSDN博客
1 年前
活泼的黄花菜  ·  Java简单url识别_java识别url_naughty610的博客-CSDN博客
1 年前
睿智的香菇  ·  [重构实践]如何避免代码多层嵌套 - 掘金
1 年前
善良的白开水  ·  python - ReadTimeoutError/pip not installling any library - Stack Overflow
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号