Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么在FragmentContainerView的name属性中使用NavHostFragment_Android_Xml_Kotlin_Android Fragments_Android Jetpack Navigation - Fatal编程技术网

Android 为什么在FragmentContainerView的name属性中使用NavHostFragment

Android 为什么在FragmentContainerView的name属性中使用NavHostFragment,android,xml,kotlin,android-fragments,android-jetpack-navigation,Android,Xml,Kotlin,Android Fragments,Android Jetpack Navigation,我们已经知道应该使用FragmentContainerView而不是FrameLayout 在这个布局中,我们定义名称属性,如下所示 <androidx.fragment.app.FragmentContainerView android:name="androidx.navigation.fragment.NavHostFragment" ... /> 定义此名称的目的是什么?它在引擎盖下做什么?

我们已经知道应该使用FragmentContainerView而不是FrameLayout

在这个布局中,我们定义名称属性,如下所示

   <androidx.fragment.app.FragmentContainerView
        android:name="androidx.navigation.fragment.NavHostFragment"
        ...   
        />


定义此名称的目的是什么?它在引擎盖下做什么?

用于在容器中添加默认
片段的
android:name属性

  • 创建片段的新实例
  • 调用Fragment.onInflate(上下文、属性集、Bundle)
  • 执行FragmentTransaction以将片段添加到适当的FragmentManager

有关这方面的更多信息,请访问:

那么NavHostFragment是导航包中定义的特殊片段?不是特殊片段,它已经映射到您的主片段,您也可以更改该片段。您将清楚地知道何时编写代码或显示默认代码。