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

Fragment中RecyclerView无数据显示及No adapter attached问题求助

问题排查与解决方法

问题原因

你在类成员变量声明时,直接通过view?.findViewById(R.id.recyclerview)初始化recyclerview变量——但此时Fragment的视图还未创建,view为null,导致recyclerview一直是null。后续的recyclerview?.apply代码块因空安全判断被跳过,RecyclerView根本没设置布局管理器和适配器,最终触发「No adapter attached; skipping layout」错误,数据自然无法显示。

解决步骤

将RecyclerView的实例获取操作移到onCreateView方法中,通过刚inflate生成的view对象来查找控件:

修改后的MainFragment代码

package hr.ferit.tomislav.lucic5.tl5_projekt

import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView

class MainFragment : Fragment() {
    private lateinit var transactions : ArrayList<Transaction>
    private lateinit var transactionAdapter: TransactionAdapter
    private lateinit var linearlayoutManager: LinearLayoutManager
    // 先声明变量,不要在这里初始化
    private var recyclerview : RecyclerView? = null

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        val view = inflater.inflate(R.layout.fragment_main, container, false)
        // 在这里通过inflate后的view获取RecyclerView实例
        recyclerview = view.findViewById(R.id.recyclerview)
        
        transactions = arrayListOf(
            Transaction("President", 400.00),
            Transaction("Jolly", 300.00)
        )

        linearlayoutManager = LinearLayoutManager(context)
        transactionAdapter = TransactionAdapter(transactions)

        recyclerview?.apply {
            layoutManager = linearlayoutManager
            adapter = transactionAdapter
        }

        return view
    }
}

额外提示

Fragment中所有与视图相关的操作,都应该在视图创建完成后执行(比如onCreateView或onViewCreated方法内),必须使用当前已创建的view对象来查找控件,避免因视图未初始化导致的空指针或控件绑定失败问题。

内容的提问来源于stack exchange,提问作者Tomislav Lučić

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 19:10:33