Как удалить тень под панелью действий с помощью 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.