Remove android.widget.Toolbar shadow

2022-08-31 13:23:22

使用 API21+ :Toolbar

// Toolbar
Toolbar toolbar = new Toolbar(this);
toolbar.showOverflowMenu();

想完全删除它的阴影。 不执行任何操作,因为已经返回 。setElevation(0)getElevation()0

有材料设计参考:

https://material.io/guidelines/layout/structure.html#structure-toolbars

有开发参考:

https://developer.android.com/reference/android/widget/Toolbar.html

但我没有看到任何与阴影有关的信息。Toolbar

问:如何完全去除/隐藏阴影?Toolbar


答案 1

使用而不是在工具栏上使用。如果它不起作用,请将工具栏放在 a 中并设置:app:elevation="0dp"android:elevationAppBarLayoutapp:elevation="0dp"

<android.support.design.widget.AppBarLayout
            android:id="@+id/appBarLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:elevation="0dp">
            ...
</android.support.design.widget.AppBarLayout>

答案 2

使用属性到您的 或 以删除阴影。app:elevation="0dp"ToolbarAppBarLayout

#.如果仅使用,则向 添加属性。Toolbarapp:elevation="0dp"Toolbar

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay"
        app:elevation="0dp"/>

#.如果 用作 的容器,则向 添加属性。AppBarLayoutToolbarapp:elevation="0dp"AppBarLayout

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay"
        app:elevation="0dp">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.AppBarLayout>

输出:

enter image description here

更新:

如果要以编程方式删除它,则可以使用以下代码:

getSupportActionBar().setElevation(0);

希望这会有所帮助~


推荐