如何确保设置片段的后退按钮使用 aac 进入启动片段
How to make sure that back button for settings fragment goes to the launching fragment with aac
所以我对 AAC 导航有疑问。我在一个 activity 中有多个片段。我在 MainActivity 中扩充菜单选项,以便每个片段都可以访问打开设置的菜单项。问题是每次我按下片段上的后退按钮时,它都不会返回到启动它的片段。它可以追溯到原始片段。
有没有办法确保这种行为得到保证?谢谢
您应该使用 FragmentManager 并将片段添加到 BackStack。
我建议看看这个 post:Go back to the previous fragment
如果您通过菜单项 ID 调用片段,那么在您的 activity 中执行此操作,例如 below.It 将解决您的问题。
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return NavigationUI.onNavDestinationSelected(item,navController) || super.onOptionsItemSelected(item)
}
你的菜单项:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/settingsFragment"
android:title="Settings"
android:menuCategory="secondary"
app:showAsAction="never" />
MenuCategory = "secondary" 不会弹出返回堆栈到起始目标。
所以我对 AAC 导航有疑问。我在一个 activity 中有多个片段。我在 MainActivity 中扩充菜单选项,以便每个片段都可以访问打开设置的菜单项。问题是每次我按下片段上的后退按钮时,它都不会返回到启动它的片段。它可以追溯到原始片段。 有没有办法确保这种行为得到保证?谢谢
您应该使用 FragmentManager 并将片段添加到 BackStack。
我建议看看这个 post:Go back to the previous fragment
如果您通过菜单项 ID 调用片段,那么在您的 activity 中执行此操作,例如 below.It 将解决您的问题。
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return NavigationUI.onNavDestinationSelected(item,navController) || super.onOptionsItemSelected(item)
}
你的菜单项:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/settingsFragment"
android:title="Settings"
android:menuCategory="secondary"
app:showAsAction="never" />
MenuCategory = "secondary" 不会弹出返回堆栈到起始目标。