【发布时间】:2013-11-21 17:02:37
【问题描述】:
我有一个带有Navigation Drawer 设计和一些活动的应用程序(我知道在这里使用 Fragments 可能会更容易,但那是不可行的)。
当用户点击一个drawer item时,相应的Activity会以FLAG_ACTIVITY_REORDER_TO_FRONT启动。向上按钮应始终将用户带回到启动活动A,因此当按下向上按钮时,我也会使用相同的标志启动A 活动。
考虑以下(大写字母是活动,试图在这里可视化后台):
A
用户从抽屉中启动 B
A -> B
用户按下向上按钮,将 A 放在前面
B -> A
用户按下后退按钮完成 A 回到 B
B
用户再次按下后退按钮退出应用程序,但恕我直言,用户应该在离开应用程序之前再次看到启动 Activity A。
你们会/是如何解决这个问题的?
编辑:@Neil,即:如果我有
A -> B
然后从那里通过抽屉转到 C 我有
A -> B -> C
如果用户现在按下向上按钮,而我只是关闭 C 而不是将 A 带到顶部,用户将返回 B,这是错误的,因为 C(导航)不在 B 下,但它们是“兄弟姐妹” .
【问题讨论】:
-
你
finish()开始Activity A是什么时候去Activity B?如果不是,请不要使用FLAG_ACTIVITY_REORDER_TO_FRONT,只需在返回Activity A时完成Activity B。 -
你也可以这样做:)
-
@Neil 感谢您的输入,我试过了,但我在编辑中描述的有问题。
-
当您通过抽屉打开一个新活动时,您应该关闭前一个活动。所以基本上 Activity A 将永远是父 Activity(在堆栈的底部),而任何其他 Activity 将永远是子 Activity。您应该找到一种始终只有一个孩子在 A 之上的方法,因此请记住从抽屉中打开了哪些活动,然后在使用抽屉再次导航时杀死任何其他打开且不是 A 的活动。活动 A 是实现抽屉的活动?
-
我想我会这样做的。我认为当用户从 A 到 B 再到 C 时,后退按钮应该将他带回 B,但由于 B 和 C 是兄弟姐妹,因此可能没有必要。感谢您的帮助:)
标签: android android-navigation