2015-01-08 47 views
0

我有一个活动,是一半的片段和一半的一些用户界面元素。Android切换片段切换整个视图

我想用另外两个视图用它们自己的逻辑和他们自己的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(); 

这里活动的看法

<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> 

注意我不关心切换片段内的片段XML代码当活动是可见的,我的代码中的“模式”变量仅在活动的创建时设置一次。

难道问题是我必须将我的视图的第一部分也放在一个片段中,它具有通用的UI元素吗?

+0

你能后整个XML你的活动代码? – Simar

+2

'android.R.id.content'需要更换的时候,你必须给你的片段布局中的一些ID,并使用该ID在fragmentTransaction – doodeec

+0

@doodeec 谢谢......这是问题的全部看法:) – user2469133

回答

0

正如doodeec说android.R.id.content获得了整个来看,我应该分配一个ID,片段,然后调用

fragmentTransaction.replace(android.R.id.myfragment, secondFragment); 

fragmentTransaction.replace(android.R.id.myfragment, firstFragment);