2017-06-12 31 views
0

我正在创建导航抽屉。片段Android

当我更换它的任何片段,它内容替换,但框架布局在后面跑..

所以,当我按在该片段空白屏幕,主要布局的内容显示。那么如何在一些片段替换它时完全移除主布局?

android.support.v4.app.FragmentManager fm=getSupportFragmentManager(); 
if (id == R.id.nav_categories) 
{ 
    Categories cat=new Categories(); 
    FragmentTransaction transaction=fm.beginTransaction().replace(R.id.relative_layout,cat); 
    transaction.addToBackStack(null); 
    transaction.commit(); 
    /* fm.beginTransaction().replace(R.id.relative_layout,cat).commit(); 
      Toast.makeText(this,"Categories",Toast.LENGTH_LONG).show();*/ 
} 
else if (id == R.id.nav_rating) 
    { 
     Fragment_Rating rat=new Fragment_Rating(); 

     fm.beginTransaction().replace(R.id.relative_layout,rat).commit(); 
     Toast.makeText(this,"Rating",Toast.LENGTH_LONG).show(); 
     FragmentTransaction transaction=fm.beginTransaction().replace(R.id.relative_layout,rat); 
     transaction.addToBackStack(null); 
     transaction.commit(); 
    } 

我试图消除addtobackstack ...

+3

可能重复[Android的 - 如何更改导航抽屉中的碎片](https://stackoverflow.com/questions/24006181/android-how-to-change-fragments-in-the-navigation-drawer) – Thecave3

+0

为父布局设置背景 – MathaN

回答

0

在片段xml文件

只需添加到父视图

android:background="#ffffff" 
android:clickable="true" 
0

添加背景到您的FrameLayout

<FrameLayout 
     android:id="@id/fragment_B" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="#B4B4B4" 
     > 
0
FrameLayout layout = (FrameLayout) findViewById(R.id.frame_layout); 
android.support.v4.app.FragmentManager fm=getSupportFragmentManager(); 
if (id == R.id.nav_categories) 
{ 
    Categories cat=new Categories(); 
    FragmentTransaction 
    transaction=fm.beginTransaction().replace(R.id.relative_layout,cat); 
    transaction.addToBackStack(null); 
    transaction.commit(); 
    layout.serVisibility(View.GONE) // add this line 
} 
else if (id == R.id.nav_rating) 
    { 
    Fragment_Rating rat=new Fragment_Rating(); 

    fm.beginTransaction().replace(R.id.relative_layout,rat).commit(); 
    Toast.makeText(this,"Rating",Toast.LENGTH_LONG).show(); 
    FragmentTransaction 
    transaction=fm.beginTransaction().replace(R.id.relative_layout,rat); 
    transaction.addToBackStack(null); 
    transaction.commit(); 
    layout.serVisibility(View.GONE); // add this line 
}