navController = Navigation.findNavController( 出錯


錯誤代碼
<androidx.fragment.app.FragmentContainerView
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
...>

 

原因
使用 FragmentContainerView 創建 NavHostFragment,或通過 FragmentTransaction 手動將 NavHostFragment 添加到您的 Activity 時,嘗試通過 Navigation.findNavController(Activity, @IdRes int) 檢索 Activity 的 onCreate() 中的 NavController 將失敗。

修改方法
直接從 NavHostFragment 檢索 NavController。

示例代碼

NavController navController;
NavHostFragment navHostFragment = (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment);
navController = navHostFragment.getNavController();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM