如何在每个导航选项卡的片段内创建 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.class
的onCreate
中,我添加了这样的标签;
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 个片段的主要内容,如果未能解决你的问题,请参考以下文章