【问题标题】:Handling up button in Android navigation component处理Android导航组件中的向上按钮
【发布时间】:2019-08-30 20:06:50
【问题描述】:

我在使用 Android 导航组件设置的主 Activity 中有两个片段 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”,但问题仍然存在。

【问题讨论】:

    标签: android kotlin android-architecture-navigation up-navigation


    【解决方案1】:

    我打电话后问题解决了

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

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

    组件似乎存在时间问题。

    【讨论】:

      猜你喜欢
      • 2018-12-05
      • 1970-01-01
      • 2021-04-13
      • 2019-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多