我实现了一个 NavigationDrawer
,当我按下一个 NavigationDrawer 项目时,一个 Fragment Transaction
发生并且该项目的背景发生变化以表明它已被选中。现在,当我按下 Hardware Back Button
转到上一个 Fragment 时,抽屉导航项目的背景仍然存在。当发生“onBackPressed”时,如何更改所选项目以引用当前 Fragment?
提前致谢。
最佳答案
在您的 Activity 中,覆盖 public void onBackPressed()
。
为进入 View 的每个 fragment 指定一个数字(方便地)对应于抽屉导航项目中的位置。或者保存最后一个 fragment 的位置。然后,当 onBackPressed()
被触发时,无论是从 fragment 的“位置”或“id”或“标签”你与其导航项目行相关联,你可以使用它来正确着色现在的导航项目(很容易将它们全部重置为默认值,并在“当前” fragment 中重新着色)。这就是我所说的方法的意思:updateCurrentSelectedItemBackground()
重置背景,为当前项目选择正确的背景并将其余的设置为默认背景。
确保在 onBackPressed()
中完成后调用 super.onBackPressed()
,以便系统在后退行为上正常执行。
关于Android:如何更改 Navigation Drawer onBackPressed() 中的选定项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29473990/