kotlin 找不到NavController集

yshpjwxd  于 2023-08-06  发布在  Kotlin
关注(0)|答案(1)|浏览(140)

我试图在片段之间导航,但是当我在onViewCreated内的主机片段(登录片段)中尝试view.findNavController时,我遇到了这个错误:
java.lang.IllegalStateException:View android.widget.ScrollView{f13c4b8 VFED. V..I. 0,0 - 0,0 #7f09011e app:id/login_fragment_container}未设置NavController
这是我在Activity中的片段容器视图。

  1. <androidx.fragment.app.FragmentContainerView
  2. android:id="@+id/container"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. app:layout_constraintBottom_toBottomOf="parent"
  6. app:layout_constraintEnd_toEndOf="parent"
  7. app:layout_constraintStart_toStartOf="parent"
  8. app:layout_constraintTop_toTopOf="parent"
  9. app:defaultNavHost="true"
  10. app:navGraph="@navigation/nav_graph_login"
  11. android:name="com.example.example.fragments.LoginFragment"
  12. />

字符串
这是LoginFragment.kt

  1. class LoginFragment : Fragment() {
  2. override fun onCreateView(
  3. inflater: LayoutInflater,
  4. container: ViewGroup?,
  5. savedInstanceState: Bundle?
  6. ): View {
  7. return inflater.inflate(R.layout.login_fragment, container, false)
  8. }
  9. private lateinit var navController: NavController
  10. override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
  11. super.onViewCreated(view, savedInstanceState)
  12. navController = view.findNavController()
  13. ...


P.S.我使用ScrollView作为片段的容器,我有两个导航图(用于两个活动),如果相关,我使用闪屏。
我试过使用片段获取导航控制器,但也不起作用。我也试过把scrollview改成linearlayout,但没有任何区别。

ifsvaxew

ifsvaxew1#

我补充道

  1. android:name="androidx.navigation.fragment.NavHostFragment"

字符串
到片段容器视图。

相关问题