在我的主要活动中,我创建了一个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>
在多个片段中,我正在使用此标题。
但在其中一个片段中,我只需要没有背景图像的按钮。
我几乎尝试了从opacity
到alpha(0)
的所有内容,但在每种情况下都不会占用Frame Layout
占用的空间。当我移除或带来图像的不透明度时,它会开始显示white transparent
颜色。
现在需要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个多小时。
由于
答案 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;