【发布时间】:2015-06-28 17:57:40
【问题描述】:
如何在 android 中实现无限片段堆栈,例如 Facebook 应用程序,您可以在其中从一个配置文件导航到另一个配置文件,当您按下后退按钮时,它会导航回您访问的每个配置文件。
【问题讨论】:
如何在 android 中实现无限片段堆栈,例如 Facebook 应用程序,您可以在其中从一个配置文件导航到另一个配置文件,当您按下后退按钮时,它会导航回您访问的每个配置文件。
【问题讨论】:
您需要将您创建的每个新片段添加到 backstack,如下所示,然后当您按下新片段时,您只需将其从堆栈中弹出:
Fragment fragment = new YourFragmentGoesHere();
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment)
.addToBackStack("Your Pre-defined String name for related fragment").commit();
当你按下新片段时,你会向后退:
FragmentManager fm = getFragmentManager();
fm.popBackStack("Your pre-defined string name for fragment", FragmentManager.POP_BACK_STACK_INCLUSIVE);
基本上就是这样。
【讨论】:
您似乎正在寻找在 Android 中为片段实现无限后退堆栈。你真正想做的是首先阅读这个页面: Providing Proper Back Navigation
请特别注意“实现片段的返回导航”部分。我可以在这里重复所有信息,但我会指定是的,这在技术上是无限的,在同样的意义上 Facebook 的后退按钮功能是无限的(即,limited by free memory)。
另外请注意,如果不同的 Fragment 以某种方式更改 UI,请特别注意,因为 Fragment 的标准后退导航只会反转您所拥有的确切 Fragment 事务。如果遇到问题,请确保正确覆盖 onBackPressed 方法和/或尝试以不同方式添加/删除/替换片段(例如:this question here)。
【讨论】: