it-roy-ru.com

Как изменить цвет системной панели навигации

В руководствах Android 5.0 панель навигации выглядит настраиваемой: http://www.google.com/design/spec/layout/structure.html#structure-system-bars

Как я могу изменить цвет панели навигации? Я хотел бы использовать белый стиль.

Скриншоты: enter image description hereenter image description hereenter image description hereenter image description here


Правка: В моих ресурсах я проверил стиль:

<item name="Android:navigationBarColor" tools:targetApi="21">@Android:color/white</item>

Но кнопки белые. Я хотел бы такой же рендерер, как второе изображение.

enter image description here

23
alex

Начиная с API 27, теперь можно использовать легкий стиль навигационной панели:

<item name="Android:navigationBarColor">@Android:color/white</item>
<item name="Android:windowLightNavigationBar">true</item>

Из документации :

windowLightNavigationBar

Если установлено, панель навигации будет отображаться так, чтобы она была совместима с фоном светлой панели навигации.

Чтобы это вступило в силу, в окне должна отображаться системная панель фоны с помощью windowDrawsSystemBarBackgrounds и навигации Запрещается просить, чтобы планка была полупрозрачной с windowTranslucentNavigation. Соответствует настройке SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR в представлении декора.

17
EyesClear

Используйте это в вашем Деятельность .

 if (Android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.Lollipop) {
        getWindow().setNavigationBarColor(getResources().getColor(R.color.green));
    }
15
Roadies

панель навигации не должна быть цветной 

Когда вы настраиваете навигацию и строки состояния, либо сделайте их прозрачными, либо измените только строку состояния. Во всех остальных случаях панель навигации должна оставаться черной.

(источник https://developer.Android.com/training/material/theme.html )

НО, вы можете использовать эту библиотеку для достижения того, что вы хотите :) https://github.com/jgilfelt/SystemBarTint

6
Pierfrancesco Soffritti

добавьте этот linle в ваш v21/style

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="Android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="Android:statusBarColor">@Android:color/transparent</item>
    <item name="Android:navigationBarColor">@color/colorPrimaryDark</item>
</style>

4
Huseyin

Вы также можете программно настроить панель навигации системы освещения в API 26:

View.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);

Где View coluld будет findViewById(Android.R.id.content).

Однако помните, что:

Чтобы это вступило в силу, окно должно запрашивать FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS, но не FLAG_TRANSLUCENT_NAVIGATION.

Смотрите документация .

0
sosite

используйте эту простую строку, чтобы изменить цвет панели навигации в соответствии с цветом фона вашего экрана

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Lollipop) {
            getWindow().setNavigationBarColor(ContextCompat.getColor(this, R.color.any_color));
        }
0
Rahul