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

Android:来自同一XML文件的多个片段,android,xml,android-layout,android-fragments,Android,Xml,Android Layout,Android Fragments,我有一个查看页面,每个主题都有一个页面(英语、数学、科学等)。视图寻呼机中的片段都是从同一个XML文件创建的。然后,这些片段中添加了片段。 由于所有父片段都来自同一个XML文件,因此我无法指定要将子片段添加到哪个片段中。我想知道他们的方法是否可以做到这一点-首先缩小id的范围???。如果你真的没有很好的理由使用它们,我建议你尽量避免使用child片段 但我不明白问题出在哪里。如果更多的片段使用相同的XML进行充气,我看不出有任何问题。您可以对所有父片段调用setArguments(),并在此处放

我有一个查看页面,每个主题都有一个页面(英语、数学、科学等)。视图寻呼机中的片段都是从同一个XML文件创建的。然后,这些片段中添加了片段。
由于所有父片段都来自同一个XML文件,因此我无法指定要将子片段添加到哪个片段中。我想知道他们的方法是否可以做到这一点-首先缩小id的范围???

。如果你真的没有很好的理由使用它们,我建议你尽量避免使用child片段


但我不明白问题出在哪里。如果更多的片段使用相同的XML进行充气,我看不出有任何问题。您可以对所有父片段调用
setArguments()
,并在此处放置一些捆绑包,这些捆绑包可以通过
getArguments()

来识别它在其中的片段。我认为您希望实现多个片段,并能够根据用户选择对其进行操作。有谷歌链接

在该网页上查看以下代码:

  • Fragment
    FragmentTransaction
  • 例如,查看类
    TitlesFragment
    中的方法
    showDetails
  • 如果您想要一个工作样本,请查看。网页中的代码片段:

    <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>
    
    从上面看,请注意布局中有2个片段。和fragmentTransaction.add方法应在R.id表单中指定父容器

    有一天我可能想要/需要实现这一点。到目前为止,我实现了show/hide
    Layouts
    (不后悔),它们可以有ID供我操作。
    祝您玩得开心,随时与我们联系,Tommy Kwee。

    谢谢您的回复。尽管如此,我不确定这会有什么帮助。我试图通过在XML中使用框架布局在父级中添加子片段。当我尝试在fragmentTransaction.add()方法中引用此布局时,它只是将其放在视图页面的第一个片段中。我正在做类似的事情,比如为类似选项卡的页面提供唯一的视图页面。我要说的是,每个XML文件都有一个片段并没有错。在代码中,当用户选择主题(英语和数学)时,您可以膨胀片段xml)。谢谢您的回复。您的意思是,只需为视图页面中的每个页面创建不同的xml文件,并为xml文件中的框架布局指定不同的ID即可。是的,可以。我当然不认为片段之间有父子关系有什么好处。如果有什么问题的话,那会让事情变得复杂,如果你想在片段中获得硕士学位,就去做吧,哈哈。父子关系的原因是因为在查看页面中,我想在回收器视图中显示每个主题的模块。单击模块时,“回收器”视图将更改,以显示该模块中的主题。这一切都很好,但我无法将对recycler视图的更改添加到后堆栈中,因此我认为可以在单击recycler视图项时更改整个片段。然后我可以将其添加到后堆栈中。我认为您可以在一个XML中指定片段。但是为了清楚起见,UI元素可以用单独的XML指定。我还没有实现多个片段。但我会发布一个可能对你有希望的答案。也许你还没有试过。我已经设法让它工作了。我将我试图添加片段的框架布局的is设置为View.generateView()。然后,当我想添加一个片段时,我调用了frame.getId()。谢谢你的帮助。谢谢你提供的信息。我会尽量记住你的技巧,因为它对你有用。虽然我认为我建议的技术受到了谷歌的鼓励(如果你愿意,我不同意)。恭喜你让代码正常工作,这似乎并不容易。
    ...
        FragmentManager fragmentManager = getFragmentManager ();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction ();
        // work here to change Activity fragments (add, remove, etc.).
        fragmentTransaction.add (R.id.myFrame, myFrag);
        fragmentTransaction.commit ();