android: fragment中onCreateView()和onViewCreated区别

一,activity和fragment的区别

特性 Activity Fragment
定义 代表应用中的一个独立屏幕 代表 Activity 中的一部分 UI 或行为
生命周期 独立生命周期 依附于宿主 Activity 的生命周期
入口点 需要在 AndroidManifest.xml 中声明 不需要在清单文件中声明

 

二,onCreateView()和onViewCreated区别

1,

onCreateView()是Android中Fragment生命周期方法的一部分,用于创建Fragment的用户界面(UI)
在这个方法中,你可以通过填充布局文件来创建Fragment的视图,并返回该视图作为Fragment的根视图。

2,

onViewCreated()是Android中Fragment中的一个回调方法,用于在Fragment的视图已经创建完毕后进行操作。
在该方法中,你可以对Fragment的视图进行初始化、设置监听器、绑定数据等操作。

 

三,例子:

package com.example.basicview

import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.navigation.fragment.findNavController
import com.example.basicview.databinding.FragmentFirstBinding

/**
 * A simple [Fragment] subclass as the default destination in the navigation.
 */
class FirstFragment : Fragment() {

    private var _binding: FragmentFirstBinding? = null

    // This property is only valid between onCreateView and
    // onDestroyView.
    private val binding get() = _binding!!

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View {

        _binding = FragmentFirstBinding.inflate(inflater, container, false)
        return binding.root

    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        binding.buttonFirst.setOnClickListener {
            findNavController().navigate(R.id.action_FirstFragment_to_SecondFragment)
        }
    }

    override fun onDestroyView() {
        super.onDestroyView()
        _binding = null
    }
}

说明:

例子中setOnClickListener就是在view创建成功后设置点击事件

效果:

posted @ 2025-04-26 08:39  刘宏缔的架构森林  阅读(125)  评论(0)    收藏  举报