如何检查RecyclerView是否已设置Adapter?避免重复设置重置子项
RecyclerView 避免重复设置Adapter的方案
RecyclerView 自带了getAdapter()方法,专门用来获取当前已绑定的Adapter实例——如果尚未设置过Adapter,该方法会返回null。你可以通过这个方法判断是否需要执行setAdapter(),完全避免重复设置导致的子项视图重置问题。
基础判断示例(Kotlin)
// 检查当前是否无Adapter,仅在未设置时绑定 if (binding.recyclerView.adapter == null) { binding.recyclerView.adapter = myRVAdapter }
进阶判断(防止重复设置同一Adapter实例)
如果你的场景中可能出现多次尝试绑定同一个Adapter实例的情况,可以直接对比实例引用,进一步避免不必要的调用:
// 仅当当前Adapter不是目标实例时才执行绑定 if (binding.recyclerView.adapter !== myRVAdapter) { binding.recyclerView.adapter = myRVAdapter }
Java 版本示例
// 基础判断 if (binding.recyclerView.getAdapter() == null) { binding.recyclerView.setAdapter(myRVAdapter); } // 进阶判断 if (binding.recyclerView.getAdapter() != myRVAdapter) { binding.recyclerView.setAdapter(myRVAdapter); }
内容的提问来源于stack exchange,提问作者Gilbert Almazan
相关产品推荐
相关产品推荐

