使用fragmentTransaction.replace时会替换哪个Fragment?
Which Fragment will be replaced when use fragmentTransaction.replace?
我有一个 activity_main.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="[URL]http://schemas.android.com/apk/res/android[/URL]"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<fragment
android:name="fragments"
android:id="@+id/lm_fragment"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_width="0dp"/>
<fragment
android:name="fragments"
android:id="@+id/pm_fragment"
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="2"/>
</LinearLayout>
所以我的 Activity 中有 2 个片段
当我在 android.R.id.content 中添加一个 Fragment 时,将添加哪个 Fragment?
我的 Mainactivity.java:
if(config.orientation == Configuration.ORIENTATION_LANDSCAPE){
LM_Fragment lm_Fragment = new LM_Fragment();
fragmentTransaction.replace(android.R.id.content, lm_Fragment);
}else{
PM_Fragment pm_Fragment = new PM_Fragment();
fragmentTransaction.replace(android.R.id.content, pm_Fragment);
}
fragmentTransaction.commit();
}
LM_Fragment 和 PM_Fragment 用于横向模式和纵向模式。当我使用 fragmentTransaction.replace(android.R.id.content, lm_Fragment);
它将添加到我在 xml 中指定的 1 in 2 片段中,但是 lm_fragment 或 pm_fragment 在哪里?谢谢!
这里是替换方法签名
public abstract FragmentTransaction replace (int containerViewId, Fragment fragment)
您的布局中没有这样的 ID android.R.id.content
。
问题是您使用的是静态片段。但是你需要动态。用 id=android.R.id.content 的单个 FrameLayout 替换两个片段标签。或者更好地使用您自己的 ID。例如。 "fragment_container",然后调用
fragmentTransaction.replace(R.id.fragment_container, lm_Fragment);
和
fragmentTransaction.replace(R.id.fragment_container, pm_Fragment);
我有一个 activity_main.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="[URL]http://schemas.android.com/apk/res/android[/URL]"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<fragment
android:name="fragments"
android:id="@+id/lm_fragment"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_width="0dp"/>
<fragment
android:name="fragments"
android:id="@+id/pm_fragment"
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="2"/>
</LinearLayout>
所以我的 Activity 中有 2 个片段 当我在 android.R.id.content 中添加一个 Fragment 时,将添加哪个 Fragment? 我的 Mainactivity.java:
if(config.orientation == Configuration.ORIENTATION_LANDSCAPE){
LM_Fragment lm_Fragment = new LM_Fragment();
fragmentTransaction.replace(android.R.id.content, lm_Fragment);
}else{
PM_Fragment pm_Fragment = new PM_Fragment();
fragmentTransaction.replace(android.R.id.content, pm_Fragment);
}
fragmentTransaction.commit();
}
LM_Fragment 和 PM_Fragment 用于横向模式和纵向模式。当我使用 fragmentTransaction.replace(android.R.id.content, lm_Fragment);
它将添加到我在 xml 中指定的 1 in 2 片段中,但是 lm_fragment 或 pm_fragment 在哪里?谢谢!
这里是替换方法签名
public abstract FragmentTransaction replace (int containerViewId, Fragment fragment)
您的布局中没有这样的 ID android.R.id.content
。
问题是您使用的是静态片段。但是你需要动态。用 id=android.R.id.content 的单个 FrameLayout 替换两个片段标签。或者更好地使用您自己的 ID。例如。 "fragment_container",然后调用
fragmentTransaction.replace(R.id.fragment_container, lm_Fragment);
和
fragmentTransaction.replace(R.id.fragment_container, pm_Fragment);