【发布时间】:2022-03-17 15:15:35
【问题描述】:
我刚刚设置了一个带有 Android 导航组件的项目,这是我的图表结构:
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nav_graph"
app:startDestination="@id/a">
<fragment
android:id="@+id/a"
android:name="com.example.tutorial.fragmentA"
android:label="a">
<action android:id="@+id/action_a_to_b"
app:destination="@id/b"
app:enterAnim="@anim/nav_default_enter_anim"
app:exitAnim="@anim/nav_default_exit_anim"
app:popEnterAnim="@anim/nav_default_pop_enter_anim"
app:popExitAnim="@anim/nav_default_pop_exit_anim"/>
</fragment>
<fragment
android:id="@+id/b"
android:name="com.example.tutorial.fragmentB"
android:label="b">
</fragment>
</navigation>
在片段 A 中,我像这样导航到 B:
findNavController().navigate(R.id.action_a_to_b)
在片段 B 中,我有一个自定义工具栏,其想法是单击左上角的箭头应该关闭片段 B 并恢复片段 A:
(activity as AppCompatActivity).setSupportActionBar(binding.toolbar)
binding.toolbar.setNavigationOnClickListener {
findNavController().popBackStack()
}
如果我点击 Key down press 按钮也是如此:
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner){
findNavController().popBackStack()
}
我仍然卡在片段 B 中的问题:退出动画开始和结束,我仍然在片段 B 中。有什么想法可以解决这个问题吗?
【问题讨论】:
-
您是否使用
setupActionBarWithNavController和自定义片段工具栏? -
@Zain 不,我没有
-
你需要这样做,请检查答案here
标签: android android-fragments android-architecture-navigation android-navigation-graph