我有一个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>
所以我的活动中有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合2片段中,但是lm_fragment或pm_fragment?谢谢!
答案 0 :(得分:1)
这是替换方法签名
public abstract FragmentTransaction replace (int containerViewId, Fragment fragment)
您的布局中没有此类ID android.R.id.content
。
事情是你正在使用静态片段。但你需要动态。将两个片段标记替换为单个FrameLayout,id = android.R.id.content。或者更好地使用自己的ID。例如。 &#34; fragment_container&#34;,然后调用
fragmentTransaction.replace(R.id.fragment_container, lm_Fragment);
和
fragmentTransaction.replace(R.id.fragment_container, pm_Fragment);