2015-05-02 76 views
0

有谁知道为什么新的Android项目模板会在布局中创建碎片而不是在Java代码中创建碎片。直到最近,当您使用Fragment执行File-> New和selcet Activity时,它会创建一个从MainActivity的onCreate调用的嵌入式PlaceHolderFragement。新的Android项目模板在布局中创建片段

现在它创建一个FragmentView并通过布局文件附加新的Fragment。我想知道是否有一个新的最佳实践,有利于通过XML与代码创建碎片。

感谢

+0

它既不是新的也不是“最佳实践”。自从四年前推出碎片以来,静态('')和动态('FragmentTransaction')方法都已出现。每种方法都有好处和成本,而且没有通用的“最佳做法”总是会引导你朝向某一方。 – CommonsWare

+0

感谢马克,我尝试从这些模板中搜集最佳实践的面包屑。我知道两者都是周围的,但出于某种原因,我认为后者因为执行动态片段交易(即多窗格布局)而受到青睐。再次感谢。 –

回答

1

我想知道是否有有利于通过XML代码VS创建 片段一个新的最佳实践。

可以使用标记<fragment直接在布局中声明片段。例如

<fragment class="com.example.YourFragment" 
    android:id="@+id/titles" 
    android:layout_weight="1" 
    android:layout_width="0px" 
    android:layout_height="match_parent" /> 

使用class属性,您必须指定Fragment的全限定路径。请注意,布局中声明的碎片不能通过交易以编程方式移除或替换

+0

谢谢,@Blackbelt,这正是我的理解。我的印象是,使用Fragment的首选方式是使用Fragment Transaction,因为根据多窗格布局的需要动态附加和删除它们。我相信会有其他静态附加片段的用例,我只是好奇,如果Android团队喜欢一种特定的方法。谢谢 –