2015-11-15 5 views
19

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

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

Вот скриншот того, что я имею в виду: puush link, обратите внимание на тень в строке состояния :(

Благодаря

+0

Можете ли вы разместить тему своей деятельности? – Jamal

+0

У вас есть drawblue флаг состояния? –

+0

Я не уверен, что вы имеете в виду @NikolaDespotoski –

ответ

21

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

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

Ваш корневой макет должен иметь 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, но это также удаляет тень внизу.

+0

Спасибо большое! Он работает. Вот образец для справки для всех остальных: https://gist.github.com/sahilshekhawat/00d24fb217f74f06fca27d133cb10d1a –

Смежные вопросы