【问题标题】:Android back stack in Navigation Drawer using Activities使用活动的导航抽屉中的Android返回堆栈
【发布时间】:2015-04-28 07:59:54
【问题描述】:

我已经使用活动而不是 this SO 答案中的框架实现了一个 android 抽屉的测试示例。

我有 3 个从 DrawerActivity 扩展的 Activity。
MainActivity 是启动应用程序时的第一个 Activity,ActivityAActivityB 从抽屉导航打开。

我希望在 MainActivity 中按下后退按钮以退出应用程序,并且在 ActivityA 或 ActivityB 上按下时返回 MainActivity,无论从导航抽屉中按下多少次列表项。

据我所知,问题在于从导航抽屉开始的所有活动都添加到后堆栈中。

还有一个额外的问题是如何在活动更改时突出显示在导航抽屉上选择的项目?
我已经在另一个使用片段的示例中完成了此代码:

mDrawerList.setItemChecked(position, true);

我可以使用活动还是需要将它们转换为片段?

【问题讨论】:

    标签: android android-activity navigation-drawer back-stack


    【解决方案1】:

    在导航抽屉项目点击上创建新的活动是相当少见的。在内部使用带有 DrawerLayout 的 Activity,并通过替换 Fragments 来处理导航点击事件。另请参阅本教程:

    http://developer.android.com/training/implementing-navigation/nav-drawer.html#top

    【讨论】:

    • 我用过带有片段的导航抽屉,我知道我想要的并不常见,但我想知道是否可以这样做。
    • 应该是可以的。而不是在导航抽屉中单击项目时替换 Fragment,而是创建一个新的 Intent 并启动 Activity。但是,这将在没有您以前的 Navigation Drawer 的情况下创建新的 Activity。当您在此状态下单击返回按钮时,您将停止 ActivityA(或 ActivityB)并返回到 MainActivity。
    • 我的问题是当 ActivityA 和 AcrivityB 被多次按下时,例如 A、B、A、B 等,在这个例子中按下回我们到 A - B - A - MainActivity。相反,我想从打开的最后一个活动转到主要活动,无论之前打开了多少次。我还尝试使用 FLAG_ACTIVITY_SINGLE_TOP 标志打开活动 A 和 B。
    • 我还是不明白,当您从 MainActivity 启动 ActivityA 时,您如何才能到达 ActivityB。我想您不能直接从 ActivityA 到达 ActivityB,或者可以吗?假设 A 和 B 活动都是空白的。从导航抽屉中的 MainActivity,您可以启动 ActivityA。好的,然后返回然后启动ActivityB。然后返回,您将返回 MainActivity。有什么问题? :)
    • 从 MainActivity 我们可以启动活动 A 和 B。从它们中我们可以启动 A 或 B。我已经实现了导航抽屉,每个活动都扩展了它,所以你可以去任何活动任何时间,因为导航抽屉在所有活动中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    • 2014-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多