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

Fragment中Kotlin+DataBinding实现的RecyclerView运行时不可见问题排查

问题根因

你代码里存在3个直接导致RecyclerView不显示的问题:

  • 初始化时给Adapter传入的是空列表:你在onViewCreated中定义的data = mutableListOf<WorkList>()没有添加任何实际数据,Adapter的getItemCount()返回0,自然不会渲染任何条目。
  • 给Adapter的data变量赋值后没有调用刷新通知:即使后续你给这个data列表添加了数据,因为你没有调用notifyDataSetChanged()或者对应范围的刷新方法,RecyclerView感知不到数据变更,也不会更新视图。
  • 可选排查项:如果后续你已经给列表添加了数据还是不显示,检查你的RecyclerView XML布局的高度属性,如果设置为wrap_content很可能因为测量问题导致高度为0,建议改为match_parent或者固定高度,或者使用wrap_content时给LinearLayoutManager设置setAutoMeasureEnabled(true)。

修复方案

1. 修改WorkFragment的onViewCreated逻辑

添加测试数据,调整配置顺序,赋值后主动通知刷新:

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    // 先初始化RecyclerView基础配置
    val adapter = WorkAdapter()
    binding.recycler1.adapter = adapter
    binding.recycler1.layoutManager = LinearLayoutManager(requireContext())
    
    // 构造测试数据,可替换为你实际的业务数据源
    val data = mutableListOf<WorkList>().apply {
        // 这里的参数替换为你自己的WorkList构造入参
        add(WorkList("9:00", "张三", "生产部", "18:00", 5))
        add(WorkList("8:30", "李四", "质检部", "17:30", 3))
    }
    // 给Adapter设置数据后调用刷新
    adapter.data = data
    adapter.notifyDataSetChanged()
}

2. 优化WorkAdapter的数据更新逻辑

你注释掉的replaceList方法就是更规范的写法,直接用这个方法替代直接给data赋值,避免每次手动调用notify:

class WorkAdapter : RecyclerView.Adapter<WorkAdapter.ViewHolder>() {
    // 把data改成私有,避免外部直接修改漏了通知
    private var data = mutableListOf<WorkList>()

    // 对外暴露替换列表的方法,自动触发刷新
    fun replaceList(newList: MutableList<WorkList>) {
        data = newList.toMutableList()
        notifyDataSetChanged()
    }

    // 其他原有逻辑保持不变...
}

修改后Fragment里设置数据直接调用adapter.replaceList(data)即可,不需要手动调用notify。

3. 排查XML布局(上述修改后仍不显示时检查)

确保你的fragment_work.xml里RecyclerView的高度配置正常:

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recycler1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

内容的提问来源于stack exchange,提问作者suny jung

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:48:01