【问题标题】:Commiting FragmentTransaction in 1 Tab of a FragmentPagerAdapter在 FragmentPagerAdapter 的 1 个选项卡中提交 FragmentTransaction
【发布时间】:2013-09-23 21:11:34
【问题描述】:

我使用FragmentPageAdapter 在我的应用程序中拥有多个标签。这些选项卡中的 1 个是 ListFragment,它应该被另一个片段 onItemClick 替换,使用 FragmentTransaction

如果我将ListFragment 添加到FrameLayout 中的Activity 中,则更改替换非常有效,但我不确定如何使用FragmentPagerAdapter 来执行此操作。

这里有一个更好的解释:

  Tab1       Tab2        Tab3        Tab4
fragment    fragment    fragment    fragment
subclass    subclass    subclass    listview

从片段列表视图中单击一项后,应将其替换为这样

  Tab1       Tab2        Tab3        Tab4
fragment    fragment    fragment    fragment
subclass    subclass    subclass    another-one

我尝试使用.replace(((ViewGroup)getView().getParent()).getId(), newFragment).commit(),但它不起作用。

【问题讨论】:

  • 是的,还没解决这个问题

标签: android android-fragments fragmentpageradapter fragmenttransaction android-nested-fragment


【解决方案1】:

如果您知道它总是会替换该页面上的Fragment,那么为什么不使用子Fragment

您使用getChildFragmentManager() 而不是使用getFragmentManager(),并将FrameLayout 放在您用于Fragment 的布局的顶部。

【讨论】:

  • 这不是我所需要的。我没有使用 FrameLayout,而是片段由 FragmentPagerAdapter 管理
  • 这没什么区别。在 Fragment 布局中放置 FrameLayout 作为视图。
  • 您的意思是第 4 个选项卡包含一个带有 FrameLayout 的片段,并且在该 FrameLayout 中,我将我想要在其中切换的 2 个片段放入?
  • 不,在您在onCreateView 中使用的布局中,将FrameLayout 放在可用于FragmentTransaction 的“顶部”。如果您向我展示您用于 Fragments 的布局,我可以准确地告诉您我的意思。
【解决方案2】:

我将放弃这个想法并改为使用Activity

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    • 2020-10-31
    • 2012-04-26
    相关资源
    最近更新 更多