Стиль Android 4.4 полупрозрачного статуса и стиля навигации на Android 5.0
В Android 4.4 KitKat вы можете настроить прозрачность элементов состояния и навигации с помощью элементов темы android:windowTranslucentStatus
и android:windowTranslucentNavigation
, а затем под полосами окна приложения расширяется и добавляется градиент. Однако на Android 5.0 Lollipop это было изменено, и теперь вместо градиента добавлен сплошной прозрачный цвет. Android 5.0 предлагает новые элементы android:statusBarColor
и android:navigationBarColor
в новой теме Material, но при попытке установить эти элементы в @android:color/transparent
окно приложения не будет расширено, а если вы используете android:windowTranslucentStatus
и android:windowTranslucentNavigation
, тогда android:statusBarColor
и android:navigationBarColor
игнорируются.
Я пропустил что-то, описанное в http://developer.android.com/training/material/theme.html#StatusBar?
![enter image description here]()
Ответы
Ответ 1
Установите android:windowTranslucentStatus
в значение false и установите android:statusBarColor
в @android:color/transparent
.
Затем добавьте следующий код:
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
Если вы также хотите, чтобы навигационная панель была полупрозрачной, установите android:navigationBarColor
в @android:color/transparent
и соедините флаг View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
.
Я не экспериментировал на панели навигации, но он будет работать.
Ответ 2
Добавьте строку ниже к вашему стилю:
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
Ответ 3
Чтобы уточнить ответ @suckgamony на этот вопрос:
- В разделе Lollipop и выше установка
android:statusBarColor
или android:navigationBarColor
в @android:color/transparent
сделает панель Строка состояния или навигации ( соответственно) полностью прозрачны, если:
-
android:windowTranslucentStatus
или android:windowTranslucentNavigation
установлено значение true, и в этом случае панель Строка состояния или на панели навигации (соответственно) будет установлена на сплошной прозрачный цвет @AxeEffect описывает (опять же, под Lollipop и выше);
-
android:statusBarColor
и android:navigationBarColor
могут использоваться только с Android версии 21 (Lollipop 5.0) или выше. Как описано в упомянутом ответе, android:windowTranslucentStatus
или android:windowTranslucentNavigation
при использовании с Kitkat обеспечивают прозрачные градиенты, а не полную прозрачность.