Android:如何更改 Navigation Drawer onBackPressed() 中的选定项?

标签 android android-fragments navigation-drawer navigationitem

我实现了一个 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/

相关文章:

点击页面主体时 Android/iOS 输入聚焦

android - Material Design Elevation - 如何在纯黑色背景上做到这一点

android - 在Android中将ExpandableListView的指示器放在右侧

java - Android 抽屉导航不滑出

java - 如何将现有 PDF 文件与 PrintedPdfDocument 一起使用?

android - fragment 可以扩展 fragment Activity 吗? [安卓]

android - 未在 fragment 中调用 baseadapter 的 getview() 方法

安卓 KitKat : android. view.InflateException : Error inflating class android. support.design.widget.NavigationView

android - 更改 NavigationView 子标题颜色

android - 如何检测设备是否支持刘海屏?