how to remove shadow below actionbar with AppCompat.Light.NoActionBar?

允我心安 提交于 2019-11-27 12:35:23
DmitryO.

I'm not an expert but I run into the same problem just a few hours ago. So the idea here is that with AppCompat we have to manage the library attributes rather than Android attributes. In other words, instead of android:elevation try app:elevation:

<android.support.design.widget.AppBarLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:fitsSystemWindows="true"
    app:elevation="0dp">

    <android.support.v7.widget.Toolbar
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

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

EDIT :

I just tried another option without AppBarLayout. This way works perfectly fine for me, the shadow is completely gone. So I suspect the problem is in your other View. I don't think it's your ToolBar drops the shadow.

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"
    app:elevation="0dp" />
Abdul Rehman

use app:elevation="0dp" instead of android:elevation

Supritha P

I had the same problem. Applying app:elevation="0dp" on android.support.design.widget.AppBarLayout solves the issue

Vijay Vavdiya

Add app:elevation="0dp" in AppBarLayout and shadow will be hide.

I had the same problem.

If your Toolbar is inside android.support.design.widget.AppBarLayout Adding app:elevation="0dp" on android.support.design.widget.AppBarLayoutwill solve your problem.

Else add app:elevation="0dp" on Toolbar.

<android.support.design.widget.AppBarLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:fitsSystemWindows="true"
app:elevation="0dp">

<android.support.v7.widget.Toolbar
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

Hope it helps :)

Bède

Just use after the super.onCreate(savedInstanceState);

if(getSupportActionBar() != null)
{
   getSupportActionBar().setElevation(0);
}
user3607438

@DmitryO Hum my xml is like this, i don't have android.support.design.widget.AppBarLayout, just the toolbar widget,

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:fab="http://schemas.android.com/apk/res-auto"
    xmlns:materialdesign="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white"
    android:theme="@style/AppThemeAccueil">

    <View xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="@dimen/statusBarHeight"
        android:background="@color/accueil_colorDark"
        android:elevation="@dimen/statusBarElevation"/>

    <android.support.v7.widget.Toolbar
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:popupTheme="@style/AppThemeAccueilToolbar"
        android:theme="@style/AppThemeAccueilToolbar"
        android:id="@+id/toolbarAccueil"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="?attr/actionBarSize"
        materialdesign:elevation="0dp"
        android:elevation="0dp"
        android:outlineProvider="background"
        android:layout_marginTop="@dimen/appBarTopMargin" >

    </android.support.v7.widget.Toolbar>
</RelativeLayout>

Have I to had this ? (I think this will not change the result)

Just put your AppBarLayout inside of a LinearLayout on a separated XML file, and then, include this XML to your main XML.

If your are not using Toolbar on the Layout and you have the default toolbar from AppCompactActivity this can help you

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

getSupportActionBar().setElevation(0);

At least it worked for me.

Regards,

In Kotlin, use:

supportActionBar!!.elevation = 0.0f 

Regards!

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!