#android #android-3.0-honeycomb
#Android #android-3.0-honeycomb
Вопрос:
Я пытаюсь затемнить строку состояния в Honeycomb, она работает так, как рекомендовано eslewhere, используя этот вызов
View.setSystemUiVisibility(View.STATUS_BAR_HIDDEN)
Проблема в том, что это работает, только если в манифесте есть android: minSdkVersion=»11″.
Я хотел бы поддерживать устройства начиная с версии API 7 и по-прежнему иметь возможность затемнять строку состояния, если она присутствует.
Есть ли какая-то волшебная комбинация настроек, делающая это возможным?
Ответ №1:
Хорошо, проблема обнаружена и исправлена через некоторое время:
Мой манифест пропустил (на самом деле был неправильно напечатан) android: targetSdkVersion =»11″. При установке этого параметра строка состояния затемняется, и minSdkVersion может быть < 11 по желанию.
Комментарии:
1. Я сделал это, и это работает для меня, на Android 14. Но я все еще не понимаю, почему изменение цели заставляет его работать. Кто-нибудь знает?
2. @Derzu потому что этот метод был определен в Honeycomb, т.Е. Версия SDK> = 11. Когда вы устанавливаете targetSdk ниже 11, ваша среда IDE использует более старый SDK для компиляции вашего проекта и, следовательно, не может найти этот метод и выдает ошибку. Смотрите мой ответ ниже.
Ответ №2:
Значение Null, вы забыли предоставить исходный код. Чтобы избежать сбоев при предварительной обработке HONEYCOMB, вы должны использовать such if
-statement:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
View.setSystemUiVisibility(SYSTEM_UI_FLAG_LOW_PROFILE);