1

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」で遊んでみましたが、問題は同じままです。

4

1 に答える 1