Скрыть заголовок, если это не ActionBar - предсказать присутствие ActionBar перед setContentView? - PullRequest
2 голосов
/ 24 октября 2011

Если мой полноэкранный режим (по умолчанию отключен) включен, я хочу, чтобы в разделе «Действия» скрывалась строка заголовка и панель уведомлений. Я могу сделать это с requestWindowFeature(Window.FEATURE_NO_TITLE); + FLAG_FULLSCREEN и т. Д. Или, возможно, setTheme(android.R.style.Theme_NoTitleBar_Fullscreen);

Любое из этих событий должно произойти до setContentView(), иначе они потерпят крах. Сложная часть:

  • Я нацеливаюсь на уровни API с 3 по 14 и хочу скрыть строку заголовка только в том случае, если действие не будет использовать ActionBar. В противном случае FEATURE_NO_TITLE скроет панель действий и потеряет некоторые важные элементы управления. (Вместо этого я остановлюсь на режиме «выключения света».)
  • Я не вижу, как узнать, будет ли использоваться ActionBar до после setContentView(), когда уже слишком поздно.

Вещи, которые не работают:

  • getActionBar() возвращает ноль на этой ранней стадии.
  • getWindow.hasFeature(Window.FEATURE_ACTION_BAR) ложно.
  • Недостаточно знать (отражением), что ActionBar существует как класс, потому что, придерживаясь темы устройства по умолчанию, он не всегда может использовать ActionBar на некоторых устройствах Ice Cream Sandwich, даже если платформа есть. (?)
    • В качестве альтернативы: могу ли я полагаться на то, что ICS всегда имеет ActionBar? Почему?
    • Редактировать: хорошо, возможно, строка заголовка ICS все еще является панелью действий, просто без элементов и даже без кнопки переполнения? (В этом случае я все еще хочу это скрыть.) Может ли кто-нибудь пролить там свет?

Есть идеи? : -)

Ответы [ 2 ]

1 голос
/ 24 октября 2011

Можно ли сделать что-то вроде предложенного здесь и здесь ? В основном укажите, что на определенных уровнях API вы скрываете строку заголовка (потому что у вас будет панель действий).

1 голос
/ 24 октября 2011

Я думаю, что вместо этого вы хотите использовать ActionBarSherlock . Он позаботится обо всем отражении и определении уровня API для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...