【发布时间】:2021-03-18 02:36:18
【问题描述】:
我基本上为底部导航视图设置了 3 个片段,所有片段都链接到 activity.xml
activity.xml 我放片段标签的地方。
<androidx.fragment.app.FragmentContainerView
android:id="@+id/fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
app:defaultNavHost="true"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageView2"
app:navGraph="@navigation/my_nav"
android:layout_width="409dp"
android:layout_height="599dp" />
我的Activity.java代码(具体):
BottomNavigationView bottomNavigationView = findViewById(R.id.bottomNavigationView);
NavController navController = Navigation.findNavController(this, R.id.fragment);
NavigationUI.setupWithNavController(bottomNavigationView, navController);
现在的问题是,如果我在 xml 中使用片段标记运行相同的 java 代码,它运行良好,但建议我使用 <androidx.fragment.app.FragmentContainerView(linters),但在使用 <androidx.fragment.app.FragmentContainerView 时,它会在 Logcat 中显示错误。
Activity 没有设置 NavController
我在这个网站上看到了很多类似的错误和修复,比如FragmentContainerView as NavHostFragment
但现在的问题是他们中的大多数都发布了 Kotlin 代码,而我尝试过的少数 java 代码对我不起作用
或者谁能把这段代码翻译成java:
val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val navController = navHostFragment.navController
【问题讨论】:
-
android studio 可以自动进行 kotlin 到 java 的转换,反之亦然
-
@cagney 对我不起作用
标签: java android android-studio android-fragments navigation