Как удалить тень под панелью действий с помощью AppCompat.Light.NoActionBar?

Я попытался удалить тень под панелью инструментов с помощью Theme.AppCompat.Light.NoActionBar, используя каждую рекомендацию людей, которые когда-либо отвечали на нее раньше, но никто не работал. Я попробовал

<item name="android:windowContentOverlay">@null</item>    

и

<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>

и при этом

android:elevation="0dp"

тень выходит из верхней части экрана, но не исчезает.

Есть ли у вас идея полностью удалить эту теневую линию?

Ответ 1

Я не эксперт, но я столкнулся с той же проблемой всего несколько часов назад. Поэтому идея состоит в том, что с AppCompat нам нужно управлять атрибутами библиотеки, а не атрибутами Android. Другими словами, вместо 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:

Я просто попробовал другой вариант без AppBarLayout. Этот способ отлично работает для меня, тень полностью исчезла. Поэтому я подозреваю, что проблема в вашем другом представлении. Я не думаю, что ваш тень ToolBar отбрасывает тень.

<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" />

Ответ 2

использовать app:elevation="0dp" instead of android:elevation

Ответ 3

У меня была та же проблема. Применение app:elevation="0dp" на android.support.design.widget.AppBarLayout решает проблему

Ответ 4

Добавьте app:elevation="0dp" в AppBarLayout, и тень будет скрыта.

Ответ 5

У меня была та же проблема.

Если панель инструментов находится внутри android.support.design.widget.AppBarLayout Добавление приложения: elevation = "0dp" на android.support.design.widget.AppBarLayout решит вашу проблему.

Остальное добавить app:elevation="0dp" в 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" />

Надеюсь, это поможет:)

Ответ 6

Просто используйте super.onCreate(savedInstanceState);

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

Ответ 7

@DmitryO Hum мой xml такой, у меня нет android.support.design.widget.AppBarLayout, только виджет панели инструментов,

<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>

У меня было это? (Я думаю, что это не изменит результат)

Ответ 8

Просто разместите AppBarLayout внутри LinearLayout в отдельном XML файле, а затем включите этот XML в свой основной XML.