处理 Android 导航组件中的向上按钮
Handling up button in Android navigation component
我在使用 Android 导航组件设置的主要 activity 中有两个片段 A 和 B。
Fragment A 包含一个 recyclerView,其中一个项目点击将导航到 Fragment B。
问题是当我点击 Fragment B 内的向上按钮时,它不会导航回 Fragment A,而是会重新加载 Fragment 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' 但问题还是一样。
我打电话后问题解决了
findNavController().navigate(
AccountSelectionFragmentDirections.actionAccountSelectionFragmentToCameraSelectionFragment(accountName, accountId)
)
在我的适配器 onClickListener 中,而不是在经过我的 MVI 架构循环后打开(点击 -> 意图 -> 状态 -> 导航)。
组件似乎存在计时问题。
我在使用 Android 导航组件设置的主要 activity 中有两个片段 A 和 B。 Fragment A 包含一个 recyclerView,其中一个项目点击将导航到 Fragment B。
问题是当我点击 Fragment B 内的向上按钮时,它不会导航回 Fragment A,而是会重新加载 Fragment 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' 但问题还是一样。
我打电话后问题解决了
findNavController().navigate(
AccountSelectionFragmentDirections.actionAccountSelectionFragmentToCameraSelectionFragment(accountName, accountId)
)
在我的适配器 onClickListener 中,而不是在经过我的 MVI 架构循环后打开(点击 -> 意图 -> 状态 -> 导航)。
组件似乎存在计时问题。