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

如何将MainActivity中的RecyclerView代码改写为Fragment版本?

适配Fragment的RecyclerView实现代码

以下是将原Activity代码改写为Fragment版本的完整实现:

class AlphaFragment : Fragment() {

    private var recyclerView: RecyclerView? = null
    private var charItem: ArrayList<CharItem>? = null
    private var gridLayoutManager: GridLayoutManager? = null
    private var alphaAdapters: AlphaAdapters? = null

    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        // 加载Fragment对应的布局文件
        return inflater.inflate(R.layout.fragment_alpha, container, false)
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        
        // 通过当前Fragment的根View获取RecyclerView实例
        recyclerView = view.findViewById(R.id.recycler_view_item)
        gridLayoutManager = GridLayoutManager(requireContext(), 3, LinearLayoutManager.VERTICAL, false)
        recyclerView?.layoutManager = gridLayoutManager
        recyclerView?.setHasFixedSize(true)

        charItem = setAlphas()
        alphaAdapters = AlphaAdapters(requireContext(), charItem!!)
        recyclerView?.adapter = alphaAdapters
    }

    private fun setAlphas(): ArrayList<CharItem> {
        val arrayList = ArrayList<CharItem>()

        arrayList.add(CharItem(R.mipmap.entertainment_pic_foreground, "A Latter"))
        arrayList.add(CharItem(R.mipmap.general_pic_foreground, "B Latter"))
        arrayList.add(CharItem(R.mipmap.health_pic_foreground, "C Latter"))
        arrayList.add(CharItem(R.mipmap.science_pic_foreground, "D Latter"))
        arrayList.add(CharItem(R.mipmap.technology_pic_foreground, "E Latter"))

        return arrayList
    }
}

关键修改说明

  • 继承类从AppCompatActivity改为Fragment,遵循Fragment的生命周期规范
  • 用onCreateView方法加载Fragment布局,替代Activity的setContentView
  • 在onViewCreated中完成视图初始化,通过传入的根View调用findViewById获取组件
  • 上下文使用requireContext()替代applicationContext,保证上下文的有效性(仅在Fragment依附于Activity时可用)
  • 移除冗余的集合初始化代码,直接通过setAlphas()赋值

注意:需确保Fragment对应的布局文件(示例中为fragment_alpha.xml)包含id为recycler_view_item的RecyclerView组件,布局结构可复用原Activity的RecyclerView配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 08:18:35