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创建成功后设置点击事件
效果:

浙公网安备 33010602011771号