Android 与编程方式相比,通过XML添加片段有哪些优点?

Android 与编程方式相比,通过XML添加片段有哪些优点?,android,android-layout,android-fragments,android-activity,Android,Android Layout,Android Fragments,Android Activity,从Android来看,我不太清楚通过XML添加片段与以编程方式添加片段相比有哪些优点和实际用例 这两种方法都允许使用Bundle将数据从活动发送到片段并返回吗? 这两种方法在活动生命周期中的行为是否相似 一些简短的例子或参考肯定会有所帮助。没有任何区别。Android有一个从XML实例化对象的系统,但它总是可以与实际执行的构造函数和添加子对象的方法互换。不同之处在于方便:XML系统允许您轻松链接其他资源,并具有帮助传递正确参数的功能。使用FragmentContainerView并使用安卓:名称

从Android来看,我不太清楚通过XML添加片段与以编程方式添加片段相比有哪些优点和实际用例

这两种方法都允许使用Bundle将数据从活动发送到片段并返回吗?
这两种方法在活动生命周期中的行为是否相似


一些简短的例子或参考肯定会有所帮助。

没有任何区别。Android有一个从XML实例化对象的系统,但它总是可以与实际执行的构造函数和添加子对象的方法互换。不同之处在于方便:XML系统允许您轻松链接其他资源,并具有帮助传递正确参数的功能。

使用FragmentContainerView并使用安卓:名称或安卓:类,您可以避免只在savedInstanceState为null或尚未添加时才实例化片段的锅炉板代码

如果以编程方式执行此操作,则需要确保仅在片段尚未添加到活动中时添加片段,方法是选中:

if (getSupportFragmentManager().findFragmentByTag(CUSTOM_TAG) != null)
{
     // You can also easily add animations or pass custom data.
     getSupportFragmentManager().beginTransaction().add(R.id.container_view, YourFragment.newInstance(data), CUSTOM_TAG).commit();
}

以编程方式这样做可以让您传递自定义数据,并在实际需要时添加自定义数据。对于layout方法,它将在活动的布局膨胀时实例化。但是很多时候,我们不需要立即添加片段,在这种情况下,以编程方式添加片段将是一个更好的选择。

这两种方法只有细微的区别。如果在XML中添加片段,则首先加载或创建它,然后将获得它的实例,反之亦然

另外,通过编程方式添加片段可以动态更改其属性,而如果从XML添加,则具有固定值


没有那么大的区别。

通过XML添加片段的优势和实际用例
如果可以用XML定义片段,为什么要编写样板代码来添加片段<代码>这两种方法都允许使用Bundle将数据从活动发送到片段吗您可以自己尝试<代码>这两种方法在活动生命周期中的行为相似?您也可以尝试此方法