我的活动是半个片段和一半UI元素。
我想通过其他两个视图以编程方式动态切换这个片段,这两个视图具有自己的逻辑和自己的UI,但屏幕上半部分的UI元素和它们的功能是相同的。
我的整个问题是当我使用FragmentManager切换片段时,结果是整个屏幕被片段视图替换并重叠活动的前半部分。
这里是活动中的代码:
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction =
fragmentManager.beginTransaction();
FirstFragment firstFragment = new FirstFragment ();
SecondFragment secondFragment = new SecondFragment ();
if (mode==2) {
fragmentTransaction.replace(android.R.id.content, secondFragment );
}else if (mode==1){
fragmentTransaction.replace(android.R.id.content, firstFragment );
}
fragmentTransaction.commit();
这里是活动视图中的片段xml代码
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<fragment
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
注意我并不关心在活动可见时切换片段,我的代码中的“mode”变量只在活动的oncreate中设置一次。
问题是我必须将我的视图的第一部分放在片段中吗?
答案 0 :(得分:0)
正如doodeec所说android.R.id.content获取整个视图,我应该为片段分配一个id然后调用
fragmentTransaction.replace(android.R.id.myfragment, secondFragment );
和
fragmentTransaction.replace(android.R.id.myfragment, firstFragment );