Wav*_*cle 6 android android-studio android-architecture-navigation android-jetpack-navigation
您好,我正在浏览 Android 开发人员网站上的导航指南,并按照说明创建了一个NavHostFragment:
<fragment
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:defaultNavHost="true"
app:navGraph="@navigation/nav_graph" />
Run Code Online (Sandbox Code Playgroud)
然而,当该代码存在时,IDE 建议我将其替换NavHostFragment为FragmentContainerView.
它们有什么区别?什么时候应该使用它们而不是另一个?
谢谢
Gab*_*tti 11
这FragmentContainerView是一个定制的布局,专门设计作为片段的容器。负责NavHostFragment在导航组件中交换目的地。
您可以使用:
<fragment
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
app:navGraph="@navigation/xxxxx"
app:defaultNavHost="true"
..>
Run Code Online (Sandbox Code Playgroud)
和:
val navController = findNavController(R.id.nav_host_fragment)
Run Code Online (Sandbox Code Playgroud)
或者您可以使用:
<androidx.fragment.app.FragmentContainerView
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
app:navGraph="@navigation/xxxx"
app:defaultNavHost="true"
..>
Run Code Online (Sandbox Code Playgroud)
和:
val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val navController = navHostFragment.navController
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4585 次 |
| 最近记录: |