I tried to remove the shadow below the toolbar with the Theme.AppCompat.Light.NoActionBar, using every recommendation of people who have ever answer it before, but no one worked. I tried
<item name="android:windowContentOverlay">@null</item>
and
<item name="android:windowContentOverlay">@drawable/solid_line</item> ....
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle">
<solid android:color="@color/accueil_color" />
<size android:height="15dp" />
</shape>
and with this,
android:elevation="0dp"
the shadow goes from the top of the screen but not disapear.
Have you any idea for totally remove this shadow line ??
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" />
use app:elevation="0dp" instead of android:elevation
I had the same problem. Applying app:elevation="0dp"
on android.support.design.widget.AppBarLayout
solves the issue
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.AppBarLayout
will 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 :)
Just use after the super.onCreate(savedInstanceState);
if(getSupportActionBar() != null)
{
getSupportActionBar().setElevation(0);
}
@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!
来源:https://stackoverflow.com/questions/31491667/how-to-remove-shadow-below-actionbar-with-appcompat-light-noactionbar