我实现了一个NavigationDrawer
,当我按下一个 NavigationDrawer 项目Fragment Transaction
时,会发生一个并且项目的背景发生变化以表明它已被选中。现在,当我按Hardware Back Button
转到上一个片段时,导航抽屉项目的背景仍然存在。当 `onBackPressed' 发生时,如何更改所选项目以引用当前片段?
提前致谢。
我实现了一个NavigationDrawer
,当我按下一个 NavigationDrawer 项目Fragment Transaction
时,会发生一个并且项目的背景发生变化以表明它已被选中。现在,当我按Hardware Back Button
转到上一个片段时,导航抽屉项目的背景仍然存在。当 `onBackPressed' 发生时,如何更改所选项目以引用当前片段?
提前致谢。
在您的活动中,覆盖public void onBackPressed()
.
给每个进入视图的片段一个(方便地)对应于导航抽屉项中的位置的数字。或者保存最后一个片段的位置。然后当onBackPressed()
被触发时,无论是从片段的“位置”或“id”或“标签”与您的导航项目行相关联,您都可以使用它来正确着色现在当前的导航项目(很容易将它们全部重置为默认值,并在“当前”片段中重新着色)。这就是我所说的方法的意思:updateCurrentSelectedItemBackground()
重置背景,为当前项目选择正确的背景并将其余的设置为默认背景。
确保super.onBackPressed()
在您完成后从内部调用,onBackPressed()
以便系统在后按行为时正常运行。