Activity + Fragment:在代码与xml中添加片段

时间:2015-02-05 10:55:40

标签: android android-fragments

在代码中将片段添加到活动布局或将其添加到xml中是否有区别?

if (savedInstanceState == null) {
        getFragmentManager().beginTransaction()
                .add(R.id.container, CardViewFragment.newInstance())
                .commit();
}

VS

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    android:name="com.example.CardViewFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:tag="tag_cardview_fragment" />

2 个答案:

答案 0 :(得分:1)

如果使用代码方法,则可以动态更改加载的片段,例如按钮单击或任何其他用户生成的事件。

答案 1 :(得分:1)

xml和代码几乎相似。如果您在活动的布局中使用了该xml代码,那么我们可以预期碎片行为几乎没有差异。

如果您将xml放入活动中,则片段会自动创建/加载, 后可以获取其实例。

但是在这里:

if (savedInstanceState == null) {
        getFragmentManager().beginTransaction()
                .add(R.id.container, CardViewFragment.newInstance())
                .commit();
}

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    android:name="com.example.CardViewFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:tag="tag_cardview_fragment" />

您正在创建片段实例优先,然后将其加载到活动中。