app:elevation =“0dp”隐藏工具栏

时间:2018-04-09 07:38:02

标签: android toolbar android-appbarlayout appbar

我已在工具栏中进行自定义布局并根据它执行操作。 但在某些情况下,我想让工具栏透明,所以当我设置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>

如何克服这个问题,因为在某些情况下我们需要透明的工具栏,但是里面的图标应该显示。

这里我附上了图片的实际外观。

Here is the Image Link

2 个答案:

答案 0 :(得分:0)

您对app:elevation="someValue"的想法是错误的,它不会隐藏工具栏。属性app:elevation用于显示您想要制作toolbar或其他{{1}的程度支持在表面上方引发的属性。将表面视为放置视图的楼层,现在如果要显示某些视图(例如view已提升到您使用该属性的其他视图)。 如果你想让它透明,就像this一样。

根据Material Design Guidelinestoolbar的标高应为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>

输出图片

enter image description here