Скрыть заголовок, если это не ActionBar - предсказать присутствие ActionBar перед setContentView?
Если мой полноэкранный режим (по умолчанию отключен) включен, я хочу, чтобы в разделе "Действия" скрывалась строка заголовка и панель уведомлений. Я могу сделать это с requestWindowFeature(Window.FEATURE_NO_TITLE);
+ FLAG_FULLSCREEN
и т. д. или, возможно, setTheme(android.R.style.Theme_NoTitleBar_Fullscreen);
Любое из этого должно произойти раньше setContentView()
или они потерпят крах. Сложная часть:
- Я нацеливаюсь на уровни API с 3 по 14 и хочу скрыть строку заголовка, только если Activity не собирается использовать ActionBar. Иначе,
FEATURE_NO_TITLE
скроет панель действий и потеряет некоторые важные элементы управления. (Вместо этого я остановлюсь на режиме "выключения света".) - Я не могу понять, как узнать, будет ли использоваться ActionBar до
setContentView()
когда уже поздно
Вещи, которые не работают:
getActionBar()
возвращает ноль на этой ранней стадии.getWindow.hasFeature(Window.FEATURE_ACTION_BAR)
ложно- Знание (отражением) того, что ActionBar существует как класс, недостаточно, потому что, придерживаясь темы устройства по умолчанию, он не всегда может использовать ActionBar на некоторых устройствах Ice Cream Sandwich, даже если платформа есть. (?)
- В качестве альтернативы: могу ли я полагаться на то, что ICS всегда имеет ActionBar? Зачем?
- Изменить: хорошо, может быть, строка заголовка ICS по-прежнему ActionBar, просто без элементов и даже кнопки переполнения? (В этом случае я все еще хочу скрыть это.) Может кто-нибудь пролить свет там?
Есть идеи?:-)
2 ответа
Решение
Я думаю, что вы хотите использовать вместо этого ht tp://actionbarsherlock.com/. Он позаботится обо всем отражении и определении уровня API для вас.