【问题标题】:How to implement unlimited fragment stack in android?如何在android中实现无限片段堆栈?
【发布时间】:2015-06-28 17:57:40
【问题描述】:

如何在 android 中实现无限片段堆栈,例如 Facebook 应用程序,您可以在其中从一个配置文件导航到另一个配置文件,当您按下后退按钮时,它会导航回您访问的每个配置文件。

【问题讨论】:

    标签: android android-fragments


    【解决方案1】:

    您需要将您创建的每个新片段添加到 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);
    

    基本上就是这样。

    【讨论】:

      【解决方案2】:

      您似乎正在寻找在 Android 中为片段实现无限后退堆栈。你真正想做的是首先阅读这个页面: Providing Proper Back Navigation

      请特别注意“实现片段的返回导航”部分。我可以在这里重复所有信息,但我会指定是的,这在技术上是无限的,在同样的意义上 Facebook 的后退按钮功能是无限的(即,limited by free memory)。

      另外请注意,如果不同的 Fragment 以某种方式更改 UI,请特别注意,因为 Fragment 的标准后退导航只会反转您所拥有的确切 Fragment 事务。如果遇到问题,请确保正确覆盖 onBackPressed 方法和/或尝试以不同方式添加/删除/替换片段(例如:this question here)。

      【讨论】:

        猜你喜欢
        • 2020-11-04
        • 1970-01-01
        • 2015-07-25
        • 2015-02-07
        • 2014-11-04
        • 1970-01-01
        • 1970-01-01
        • 2020-04-11
        • 2010-09-22
        相关资源
        最近更新 更多