【问题标题】:Viewpager inside fragment and back button片段内的 Viewpager 和后退按钮
【发布时间】:2014-10-04 06:13:19
【问题描述】:

我在getChildFragmentManager() and viewpager之前问过这个问题没有任何回应,可能是因为解释太长了。

简单地说,我在片段中有一个查看器。该 viewpager 内的页面需要通过一系列屏幕进行替换。在这些屏幕上按回不会退出应用程序。我该怎么做?

挑战:

  1. viewpager xml 不使用框架布局。当我使用替换方法时,什么容器 我要使用 id 吗?

  2. 在替换片段时,如果 getChildFragmentManager 对当前片段是私有的,为什么我每次都要使用它?

@goonedroid:我在这里寻找的不是这种情况。唯一的相似之处是该片段有一个浏览器。点击时需要替换我的viewpager的页面:

我有一个导航抽屉。单击项目 2 显示 FragmentA。单击 FragmentA 会将其替换为 FragmentB。单击 FragmentB 会将其替换为 FragmentC。单击 FragmentC 将带您回到 FragmentB。片段被添加到 backstack 以进行正确的向后导航。

单击 navdrawer 中的项目 1 会显示带有 viewpager 的 FragmentZ。 viewpagers 页面只是 FragmentA 和所有上述行为。但是在这里从 A 到 B,然后按返回在 viewpager 中显示没有页面。

【问题讨论】:

  • 要替换 Viewpager 中的片段,你应该使用 viewpager 的 setCurrentItem() 方法。
  • setCurrentItem 只设置viewpager的当前页面。我在 viewpager 中单击一个页面,并想要一个新的片段来替换它。当我点击返回时,它应该将我带到 viewpager 中的原始页面。
  • @goonedroid:我在这里寻找的不是这种情况。唯一的相似之处是该片段有一个浏览器。我的浏览器页面需要更换。

标签: android android-fragments


【解决方案1】:

我终于找到了一个解决方案,但不知道为什么会这样,因为我认为 Activity 的 getSupportFragmentManager() 返回与其片段的 getFragmentManager() 相同的片段管理器。

无论如何,不​​要在片段中使用 getFragmentManager(),而是使用 getActivity().getFragmentManager()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多