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

Стиль 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

4b9b3361

Ответ 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 обеспечивают прозрачные градиенты, а не полную прозрачность.