1

我在使用 Android 导航组件设置的主要活动中有两个片段 A 和 B。Fragment A 包含一个 recyclerView,在其中单击项目将导航到 Fragment B。

问题是当我单击片段 B 中的向上按钮时,它不会导航回片段 A,而是会重新加载片段 B。它只会在第二次单击时返回。与后退按钮相同的行为。

一旦我设法导航回片段 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

0

我打电话后问题解决了

findNavController().navigate(
    AccountSelectionFragmentDirections.actionAccountSelectionFragmentToCameraSelectionFragment(accountName, accountId)
)

在我的适配器 onClickListener 中,而不是在通过我的 MVI 体系结构的循环之后(单击 -> 意图 -> 状态 -> 导航)。

该组件似乎存在时间问题。

于 2019-08-30T21:14:07.997 回答