如何在每个导航选项卡的片段内创建 2 个片段

Posted

技术标签:

【中文标题】如何在每个导航选项卡的片段内创建 2 个片段【英文标题】:How to create 2 Fragment inside Fragment of each Nav Tab 【发布时间】:2012-06-02 03:40:21 【问题描述】:

我在 android 开发网站上关注 Action bar tutorial

ActionBarActivity.classonCreate 中,我添加了这样的标签;

    Tab tab = actionBar.newTab()
            .setText(R.string.artist)
            .setTabListener(new TabListener<ArtistFragment>(
                    this, "artist", ArtistFragment.class));
    actionBar.addTab(tab);

所以,我将拥有ArtistFragment extend Fragment,但我不确定如何在ArtistFragment 内添加 2 个片段(ListFragment 和 DetailFragment)ArtistFragment.class 内会是什么?

【问题讨论】:

【参考方案1】:

Warpzit 所说的。根据Android: Can you nest Fragments?,片段不能嵌套。您的 Fragment 可以通过到达其父 Activity 来使另一个 Fragment 与它一起实例化。我通常不会推荐这个,因为 Fragments 应该是一个封装单元。但是,如果您的 Fragments 是紧密耦合的(例如,对应于列表项的详细显示),我可以看到这样做。

您的代码将如下所示:

            FragmentManager fm = getActivity().getSupportFragmentManager();
            MyFragmentClass myFragment = new MyFragmentClass();
            fm.beginTransaction().add(android.R.id.content, myFragment).commit();

【讨论】:

【参考方案2】:

Android 不支持 Fragment 中的 Fragment(目前)。您应该尝试创建一个支持 2 个与您的 Activity 通信的片段或 1 个片段来处理两个片段将完成的工作的布局。

【讨论】:

@Shruti developer.android.com/about/versions/…【参考方案3】:

我发现 API Demos 项目中的 FragmentTabs 示例非常有用。

只需从 Eclipse 创建一个新的 Android 示例项目并选择 API 演示(尝试 API 13)。另外对于支持(兼容性)库,Support4Demos 中有一个 FragmentTabs 演示

【讨论】:

以上是关于如何在每个导航选项卡的片段内创建 2 个片段的主要内容,如果未能解决你的问题,请参考以下文章

显示 ActionBar 选项卡的两个片段

具有多个 backstack 的片段

如何在片段中创建选项卡的示例?

从具有选项卡布局的活动中启动选项卡片段

listview 没有在带有 viewpager 选项卡的片段中刷新

片段内的片段选项卡