You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检查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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 22:10:10