如何完全删除布局的背景

时间:2016-04-30 22:57:51

标签: android android-layout android-fragments

在我的主要活动中,我创建了一个FrameLayout。我添加了ButtonBackground 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定义并开始在标题高度Fragment Layout之后显示56dp的内容。

如果我将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个多小时。

由于

2 个答案:

答案 0 :(得分:1)

尝试将背景设置为透明。

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

前2个零用于透明度。 您还可以动态创建header_layout并根据需要设置其背景。

答案 1 :(得分:1)

在你的框架布局中

而不是 android:layout_height =&#34; 56dp&#34; android:layout_height =&#34; wrap_content&#34;