1

我实现了一个NavigationDrawer,当我按下一个 NavigationDrawer 项目Fragment Transaction时,会发生一个并且项目的背景发生变化以表明它已被选中。现在,当我按Hardware Back Button转到上一个片段时,导航抽屉项目的背景仍然存在。当 `onBackPressed' 发生时,如何更改所选项目以引用当前片段?

提前致谢。

4

1 回答 1

1

在您的活动中,覆盖public void onBackPressed().

给每个进入视图的片段一个(方便地)对应于导航抽屉项中的位置的数字。或者保存最后一个片段的位置。然后当onBackPressed()被触发时,无论是从片段的“位置”或“id”或“标签”与您的导航项目行相关联,您都可以使用它来正确着色现在当前的导航项目(很容易将它们全部重置为默认值,并在“当前”片段中重新着色)。这就是我所说的方法的意思:updateCurrentSelectedItemBackground()重置背景,为当前项目选择正确的背景并将其余的设置为默认背景。

确保super.onBackPressed()在您完成后从内部调用,onBackPressed()以便系统在后按行为时正常运行。

于 2015-04-06T16:56:15.070 回答