Android:来自同一XML文件的多个片段

时间:2015-02-17 21:23:37

标签: android xml android-layout android-fragments

我有一个视图寻呼机,它有一个数组中每个主题的页面(英语,数学,科学等)。视图分页器中的片段都是从同一XML文件创建的。然后这些片段在其内部添加了片段。 由于所有父级都从同一个XML文件中膨胀,我无法指定要将子片段添加到哪个片段。我想知道他们是否有办法做到这一点 - 缩小id的范围可能??

2 个答案:

答案 0 :(得分:0)

首先。如果你真的没有充分的理由使用它们,我建议你尽量避免儿童碎片。

但我不明白问题出在哪里。如果更多的片段使用相同的XML进行膨胀,我没有看到任何问题。你可以在所有父片段上调用setArguments()并在这里添加一些Bundle,它可用于通过getArguments()识别它所在的片段。

答案 1 :(得分:0)

我认为您希望实现多个片段,并具有根据用户选择操作它们的功能。有Google链接Fragments

在该网页上查看这些代码:

  1. FragmentFragmentTransaction
  2. 的众多样本
  3. 例如,查看课程showDetails中的方法TitlesFragment
  4. 如果您需要工作样本,请查看Working with Android Fragments。来自网页的片段:

    <LinearLayout
      android:layout_width="wrap_content"
      android:layout_height="match_parent">
      <fragment
        android:id="@+id/headFrag"
        android:name="com.intertech.HeaderFrag"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"/>
      <fragment
        android:id="@+id/bodyFrag"
        android:name="com.intertech.BodyFrag"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"/>
    </LinearLayout>
    

    代码

    ...
        FragmentManager fragmentManager = getFragmentManager ();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction ();
        // work here to change Activity fragments (add, remove, etc.).
        fragmentTransaction.add (R.id.myFrame, myFrag);
        fragmentTransaction.commit ();
    

    从上面看,布局中有2个片段。而fragmentTransaction.add方法应该以R.id格式指定父容器。

    有一天,我可能想要/需要实现这一点。到目前为止,我实现了显示/隐藏Layouts(而不是后悔),并且他们可以使用ID来操作。 玩得开心,让我们发布,Tommy Kwee。