2016-04-30 187 views
0

在我的主要活動中,我創建了一個FrameLayout。我已經添加了一個Button和一個Background Image它。如何完全刪除佈局的背景

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="56dp" 
    android:id="@+id/header_layout" 
    android:background="@drawable/top_header" 
    > 

<Button 
    android:layout_width="25dp" 
    android:layout_height="25dp" 
    android:layout_marginLeft="10dp" 
    android:id="@+id/btn_openDrawer" 
    android:background="@drawable/more" 
    android:layout_gravity="center|left" 
    /> 
</FrameLayout> 

在我使用這個頭的多個片段。

但是在片段之一中,我只需要沒有背景圖片的按鈕。

我已經嘗試過幾乎所有的東西,從opacityalpha(0),但在任何情況下它都不會佔用Frame Layout所佔用的空間。當我移除圖像或使圖像不透明時,它會開始顯示white transparent的顏色。

我希望它只佔用這個按鈕的空間enter image description here。並把碎片的內容放在它上面。

現在需要56dp高度,這對於我定義Frame Layout並開始頭的高度,這是56dp之後顯示的Fragment Layout內容。

如果我將Frame Layout的高度更改爲0dp,它也會停止顯示按鈕。

首頁活動

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:id="@+id/home_layout" 
    > 

    <include layout="@layout/header_layout"/> 
    <include layout="@layout/content_home" /> 

</LinearLayout> 
//NavigationView... 

HomeActivity.Java

 switch (item.getItemId()){ 

      case R.id.nav_home: 
       fragmentTransaction= getSupportFragmentManager().beginTransaction(); 
       fragmentTransaction.replace(R.id.main_container,new MainActivity()); 
       fragmentTransaction.commit(); 
       item.setChecked(true); 
       drawerLayout.closeDrawers(); 
       break; 

//This Code is displaying Header With Image 

      case R.id.nav_more: 
       fragmentTransaction= getSupportFragmentManager().beginTransaction(); 
       fragmentTransaction.replace(R.id.main_container, new MoreActivity()); 
       fragmentTransaction.commit(); 
       item.setChecked(true); 
       drawerLayout.closeDrawers(); 
       break; 
     } 

請指引我,我只是堅持到這個時間超過8小時了。

謝謝

回答

1

嘗試設置背景透明。

FrameLayout frameLayout = (FrameLayout) findViewById(R.id.header_layout); 
frameLayout.setBackgroundColor(0x00000000); 

前2個零是透明的。 您也可以動態創建header_layout並根據需要設置其背景。 layout_height =「56dp」寫的android:

+0

謝謝你,這代碼將在圖像的位置白色邊框,並且仍然需要的'56dp'高度並在'56dp'之後啓動另一個佈局 – Kirmani88

1
在你的框架佈局而不是機器人

layout_height =「WRAP_CONTENT」

+0

謝謝,我希望標題大小爲56dp,如果我定義'wrap_content',它將佔用比需要更多的高度。 – Kirmani88