Подтвердить что ты не робот

В строке состояния появляется надпись appbarlayout

Как я могу избавиться от повышения в строке состояния? Если я установил в AppbarLayout приложение: elevation to 0dp, высота не появится больше в строке состояния, но также не ниже AppbarLayout.

Как мне получить высоту под AppbarLayout?

Вот скриншот, что я имею в виду: ссылка puush ​​, заметьте тень в строке состояния: (

Спасибо!

4b9b3361

Ответ 1

Наша забота о тени AppBarLayout видима, когда строка состояния прозрачна. Наличие непрозрачной строки статуса не является жизнеспособным в любое время. Это происходит на Lollipop и выше только из-за динамического теневого рендеринга. На Зефире неправильная тень выглядит еще хуже.

Лучшее решение

Ваш корневой макет должен иметь android:fitsSystemWindows="true" в любое время, в противном случае ваш пользовательский интерфейс не будет опираться на строку состояния.

Теперь оберните AppBarLayout внутри другого CoordinatorLayout, который имеет android:fitsSystemWindows="false". Это предотвратит переполнение тени в строку состояния


Другие обходные пути (не рекомендуется)

В вашем стиле удалите statusBarColor:

<item name="android:statusBarColor">@android:color/transparent</item> 

Итак, ваша тема:

<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
</style>

Также вы можете просто сделать app: elevation = "0dp" на appbarlayout, но это также удаляет тень внизу.