【问题标题】:Android Navigation Drawer: open deep fragment from notificationAndroid导航抽屉:从通知中打开深层片段
【发布时间】:2017-03-27 18:25:15
【问题描述】:

首先对不起我生疏的英语!

这是我有一段时间以来的疑问,虽然我在 Android 上的技能越来越好,但我还没有找到解决这个问题的优雅解决方案:

假设一个应用程序使用 Navigation Drawer 模式并具有三个导航级别: 首页 -> 帖子 -> 帖子详情

当我从启动器打开应用程序时,我会添加主页片段。从这里,用户可以使用片段事务一直导航到给定的“帖子”。

现在想象一下,有某种通知让我知道特定帖子上发生了什么事:从通知打开应用程序时,您将如何创建“合成”后台堆栈?我的意思是:

1- 从通知中打开应用

2- 应用在帖子详情中打开

3- 后退导航必须是 > 帖子 > 主页

提前非常感谢!

【问题讨论】:

    标签: android android-fragments navigation-drawer


    【解决方案1】:

    没有任何代码行很难说你是如​​何设置这些 Fragments 的,但你可能需要 addToBackStack 方法或考虑 @Override onBackPressed 正确。假设通知是你的,你可以在PendingIntent extras Bundle 中设置id 或任何你需要的东西,在OnCreate 方法中获取,然后创建一个堆栈

    【讨论】:

    • 是的,我过去就是这样解决的。但我不认为它很优雅。我之所以没有放任何代码,是因为我面临的更多的是一个概念问题。
    • 看一下:medium.com/google-developers/… 有一节解释了如何使用**TaskStackBuilder**。我想知道片段是否有类似的东西。
    • 是的,它的FragmentManager,堆栈是使用FragmentTransaction 设置的。这些方法在The Back Stack and Fragments 部分中描述...
    • 那么,在提交之前将多个事务添加到后台堆栈不是一个糟糕的做法吗?谢谢!
    猜你喜欢
    • 1970-01-01
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    相关资源
    最近更新 更多