【发布时间】:2017-05-04 17:05:46
【问题描述】:
我目前正在编写一个抽屉布局作为我的主要布局,当点击抽屉上的一个项目时,我将使用嵌入的 FrameLayout 来保存每个“页面”。当应用程序第一次启动时,将显示一个初始片段。稍后可以添加/替换其他片段,这很好,但是,我的问题是当用户单击第一个“初始片段”上的后退按钮时,我不希望从布局中删除该特定片段。目前,它正在被删除,它只是显示一个没有其他内容的抽屉布局(这是有道理的)。如果初始片段是最后一个显示并且按下后退按钮,我希望应用程序自动退出,而不是删除该初始片段,然后在再次按下后退出。
我想过要做的事情:
- 不将第一个片段添加到后台堆栈。 (如果我这样做,我可以将它与片段的类名进行比较,它是一个稍长的字符串,或者我可以使用一个布尔值,一旦第一个片段被放置(而不是添加到后台堆栈),布尔值被设置现在允许添加片段。
- 覆盖活动的 onBackPressed 函数
有没有人有建议的方法或可以想到更好的方法?谢谢
【问题讨论】:
-
我建议第一个选项,即不将片段添加到后台
-
我建议覆盖 onBackPressed 并且只有在 frsgment 堆栈中有条目时才返回
标签: android android-fragments back-button fragment-backstack