我已在工具栏中进行自定义布局并根据它执行操作。
但在某些情况下,我想让工具栏透明,所以当我设置app:elevation="0dp"
时,它会隐藏我的自定义布局,但单击该区域时仍会执行操作。
我在工具栏中使用了以下布局。
被修改
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarMain"
app:elevation="0dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:background="@null"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/iv_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:contentDescription="@null"
android:padding="@dimen/activity_vertical_margin"
android:src="@drawable/ic_menu" />
<FrameLayout
android:id="@+id/frmNotification"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toEndOf="@+id/iv_menu"
android:layout_toRightOf="@+id/iv_menu"
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:padding="@dimen/padding_5">
<ImageView
android:id="@+id/iv_notification"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:contentDescription="@null"
android:padding="@dimen/padding_5"
android:src="@drawable/ic_notification" />
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginTop="@dimen/padding_5"
android:background="@drawable/bg_bage">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/eight"
android:textColor="@android:color/white"
android:textSize="@dimen/font_8" />
</FrameLayout>
</FrameLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/frmNotification"
android:contentDescription="@null"
android:src="@drawable/logo_header" />
<ImageView
android:id="@+id/ivElasticSearch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:paddingLeft="@dimen/padding_10"
android:paddingRight="@dimen/padding_15"
android:src="@drawable/ic_search" />
</RelativeLayout>
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
如何克服这个问题,因为在某些情况下我们需要透明的工具栏,但是里面的图标应该显示。
这里我附上了图片的实际外观。
答案 0 :(得分:0)
您对app:elevation="someValue"
的想法是错误的,它不会隐藏工具栏。属性app:elevation
用于显示您想要制作toolbar
或其他{{1}的程度支持在表面上方引发的属性。将表面视为放置视图的楼层,现在如果要显示某些视图(例如view
已提升到您使用该属性的其他视图)。
如果你想让它透明,就像this一样。
根据Material Design Guidelines,toolbar
的标高应为appbar
。因此,您不应将其设置为4dp
。
答案 1 :(得分:0)
使用android:background="@null"
代替app:elevation="0dp"
。
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null">
修改强>
您想要删除工具栏的阴影。为此,仅对appbar布局使用app:elevation="0dp"
。修订前的代码显示您用于工具栏和appbar。删除工具栏。
<强>更新强>
我测试了代码,以下代码似乎可以完成这项工作。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/testbg">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarMain"
app:elevation="0dp"
android:background="@null"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:background="@null"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize">
<!-- Rest of the code -->
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
</RelativeLayout>
输出图片