我正在获取经典列表内容模式的应用程序,展示了左侧菜单选项和中心内容的列表。不同的菜单选项会将内容与显示新信息的相应片段交换。适当的Android向上导航片段
我正在与实施适当的向上导航挣扎:
|---------------------------------------|
|< Frag. B | B1 B2 B3 |
|----------|----------------------------|
|Fragment A| |
[Fragment B] |
|Fragment C| Fragment B.2 |
|Fragment D| |
|Fragment E| |
|----------|----------------------------|
在上图中所述用户已经导航到碎片B.2。他首先从菜单中选择了F片段B,之后他按下了一个按钮,使他“进一步进入”片段B,到片段B.2。
如果用户现在按下按HOME键(如在家中一样)按钮,他将返回到片段B.这是按照计算的。
然而,片段B.2里面有ActionBar中的按钮将用户带到片段E.2:
|---------------------------------------|
|< Frag. E | E1 E2 E3 |
|----------|----------------------------|
|Fragment A| |
|Fragment B| |
|Fragment C| Fragment E.2 |
|Fragment D| |
[Fragment E] |
|----------|----------------------------|
当用户到达这里的片段E.2,在以前的片段后面的堆栈是碎片B.2。我当前的实现只是在按HOME按钮时调用getActivity().onBackPressed()
,用户将简单地返回到片段B.2。 这对用户来说没有意义,所以我想实现一个系统,使用户现在可以使用Fragment E(即使Fragment B.2是后堆栈中的前一个片段)。
我的直接想法是引用片段,该片段应该像后面堆栈中的前一个片段一样,在每个片段内部起作用。 片段B.2会参考片段B,片段E.2会参考片段E等。当按下HOME按钮时 我会启动被引用为前一片段的片段。我辩论这个解决方案,但很快意识到这可能会变得很复杂,关于后退堆栈,更不用说它听起来非常笨拙。
是否有智能的方法来实现这种行为?
如果他按下当前实现(getActivity()。onBackPressed())的HOME按钮,那是什么意思? BackPressed与家庭不同.. – 2013-03-01 17:09:08
感谢您的反馈。我更新了这篇文章,澄清了我的意思..我当前的实现是在主页按钮被按下时手动调用onBackPressed()方法,这会导致意外的行为。 – 2013-03-01 21:41:04