2015-02-17 63 views
0

我有一个查看寻呼机,它有一个数组(英语,数学,科学等)中的每个主题的页面。视图分页器中的片段都是从同一个XML文件创建的。这些碎片随后在其中添加了碎片。 由于所有父母都从相同的XML文件膨胀,我无法指定要将哪个片段添加到子片段。我想知道如果他们是一种方式来做到这一点 - 缩小身份证的范围也许??Android:来自同一个XML文件的多个片段

+0

我正在做类似的事情,比如像页面这样的标签有独特的视图寻呼机。我说每个XML文件都有一个片段没有错。在代码中,当用户选择主题,英语和数学)时,可以扩充片段xml。 – 2015-02-17 21:50:49

+0

谢谢你的回复。你的意思是可以为视图分页器中的每个页面创建一个不同的xml文件,只需在xml文件中给框架布局一个不同的ID即可。 – AcademicDuck 2015-02-17 21:54:55

+0

是的AcademicDuck,没关系。我当然看不到片段之间有亲子关系的好处。如果有的话,这会让事情变得复杂,如果你想在碎片中获得MS学位,那就做吧,哈哈。 – 2015-02-17 23:24:04

回答

0

我认为你想实现多个片段的能力来操纵它们取决于用户的选择。有谷歌链接Fragments

审查这些代码的网页上:

  1. Fragment的许多样品和TitlesFragmentFragmentTransaction
  2. 看方法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。

+0

我设法让它工作。我设置框架布局的是,我试图添加片段,以View.generateViewId()。然后,当我想添加一个片段时,我调用了frame.getId()。谢谢你的帮助。 – AcademicDuck 2015-02-19 12:17:52

+0

感谢您的信息。我会试着记住你的技术,因为它适合你。尽管我认为我的推荐技术受到Google的鼓励(如果您愿意,我不同意)。祝贺你让你的代码工作,似乎并不容易。 – 2015-02-19 20:29:56

0

首先。如果你确实没有很好的理由去使用它,我建议你尽量避免使用小孩碎片。

但我不明白哪里是问题。如果更多片段使用相同的XML进行充气,我不会看到任何问题。您可以在所有父片段上调用setArguments(),并在此处放置一些可用于识别其位于其内部的片段的Bundle()。

+0

谢谢你的回复。虽然,我不确定这将如何帮助。我试图通过在XML内部使用框架布局来在父代中添加子片段。当我尝试在fragmentTransaction.add()方法中引用此布局时,它只是将它放入视图分页器的第一个片段中。 – AcademicDuck 2015-02-17 21:41:56

相关问题