Android:来自同一个XML文件的多个片段
我有一个查看寻呼机,它有一个数组(英语,数学,科学等)中的每个主题的页面。视图分页器中的片段都是从同一个XML文件创建的。这些碎片随后在其中添加了碎片。 由于所有父母都从相同的XML文件膨胀,我无法指定要将哪个片段添加到子片段。我想知道如果他们是一种方式来做到这一点 - 缩小身份证的范围也许??Android:来自同一个XML文件的多个片段
我认为你想实现多个片段的能力来操纵它们取决于用户的选择。有谷歌链接Fragments
审查这些代码的网页上:
- 的
Fragment
的许多样品和TitlesFragment
类FragmentTransaction
- 看方法
showDetails
,例如。
如果你想要一个工作样品,看看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来操纵我。 玩得开心,并保持我们张贴,汤米Kwee。
我设法让它工作。我设置框架布局的是,我试图添加片段,以View.generateViewId()。然后,当我想添加一个片段时,我调用了frame.getId()。谢谢你的帮助。 – AcademicDuck 2015-02-19 12:17:52
感谢您的信息。我会试着记住你的技术,因为它适合你。尽管我认为我的推荐技术受到Google的鼓励(如果您愿意,我不同意)。祝贺你让你的代码工作,似乎并不容易。 – 2015-02-19 20:29:56
首先。如果你确实没有很好的理由去使用它,我建议你尽量避免使用小孩碎片。
但我不明白哪里是问题。如果更多片段使用相同的XML进行充气,我不会看到任何问题。您可以在所有父片段上调用setArguments()
,并在此处放置一些可用于识别其位于其内部的片段的Bundle()。
谢谢你的回复。虽然,我不确定这将如何帮助。我试图通过在XML内部使用框架布局来在父代中添加子片段。当我尝试在fragmentTransaction.add()方法中引用此布局时,它只是将它放入视图分页器的第一个片段中。 – AcademicDuck 2015-02-17 21:41:56
我正在做类似的事情,比如像页面这样的标签有独特的视图寻呼机。我说每个XML文件都有一个片段没有错。在代码中,当用户选择主题,英语和数学)时,可以扩充片段xml。 – 2015-02-17 21:50:49
谢谢你的回复。你的意思是可以为视图分页器中的每个页面创建一个不同的xml文件,只需在xml文件中给框架布局一个不同的ID即可。 – AcademicDuck 2015-02-17 21:54:55
是的AcademicDuck,没关系。我当然看不到片段之间有亲子关系的好处。如果有的话,这会让事情变得复杂,如果你想在碎片中获得MS学位,那就做吧,哈哈。 – 2015-02-17 23:24:04