Цвет строки состояния и панели навигации Android API30+Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Цвет строки состояния и панели навигации Android API30+

Сообщение Anonymous »

Для моего приложения я использовал этот код, чтобы установить темный цвет для навигационной или системной панели:

Код: Выделить всё

 WindowCompat.setDecorFitsSystemWindows(getWindow(), false);
getWindow().setStatusBarColor(ContextCompat.getColor(this, android.R.color.black));
getWindow().setNavigationBarColor(ContextCompat.getColor(this, android.R.color.black));
Однако в консоли Google написано, что для Android 15 я использую устаревшую версию:

Код: Выделить всё

android.view.Window.setDecorFitsSystemWindows
androidx.core.view.WindowCompat$Api30Impl.setDecorFitsSystemWindows
androidx.core.view.WindowCompat.setDecorFitsSystemWindows
android.view.Window.setNavigationBarColor
android.view.Window.setStatusBarColor
Поэтому я попытался добавить условие с помощью InstetsController:

Код: Выделить всё

WindowInsetsController insetsController = null;

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
insetsController = getWindow().getInsetsController();
if (insetsController != null) {
insetsController.setSystemBarsAppearance(WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS, WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS);
insetsController.setSystemBarsAppearance(WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS, WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS);
}
} else {
WindowCompat.setDecorFitsSystemWindows(getWindow(), false);
getWindow().setStatusBarColor(ContextCompat.getColor(this, android.R.color.black));
getWindow().setNavigationBarColor(ContextCompat.getColor(this, android.R.color.black));
}
Но теперь на моем устройстве нижняя панель навигации белая, а не черная.
Есть предложения?

Подробнее здесь: https://stackoverflow.com/questions/793 ... olor-api30
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»