Android ナビゲーション コンポーネントで設定されたメイン アクティビティ内に 2 つのフラグメント A と B があります。フラグメント A には、項目をクリックするとフラグメント B に移動する recyclerView が含まれています。
問題は、フラグメント B 内の [上へ] ボタンをクリックすると、フラグメント A に戻らず、代わりにフラグメント B をリロードすることです。2 回目のクリックでのみ戻ることができます。戻るボタンと同じ動作。
フラグメント A に戻ることができたら、アイテムをクリックしてフラグメント B に移動すると、次の例外がスローされます。
java.lang.IllegalArgumentException: navigation destination com.example.sampleapp:id/action_accountSelectionFragment_to_cameraSelectionFragment is unknown to this NavController
これは最新バージョンの既知のバグですか? 私は2.2.0-alpha01を使用しています
ナビゲーションを実装した方法は次のとおりです。
MainActivity.kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val navController = findNavController(R.id.nav_host_fragment)
setupActionBarWithNavController(navController)
}
override fun onSupportNavigateUp() =
findNavController(R.id.nav_host_fragment).navigateUp()
FragmentA : recyclerView のアイテムをクリックしたときに呼び出されるコールバック メソッド
private fun goToCameraSelectionActivity(accountId: Int, accountName: String) {
findNavController().navigate(
AccountSelectionFragmentDirections.actionAccountSelectionFragmentToCameraSelectionFragment(accountName, accountId)
)
}
「popTo」で遊んでみましたが、問題は同じままです。