Android (3.0) Панель действий не хочет идти

Я работаю с XOOM и пытаюсь скрыть панель действий. Итак, я следую инструкции, сделал следующее в файле манифеста:

uses-sdk android:minSdkVersion="11" android:targetSdkVersion="11"

также установить тему деятельности.

android:theme="@android:style/Theme.Holo.NoActionBar"

к сожалению, я все еще вижу панель действий. поэтому я удаляю часть голографического действия из своего манифеста и добавляю следующий код

ActionBar actionBar = getActionBar(); actionBar.hide();

получение исключения нулевого указателя из метода hide(). поэтому я понимаю, что getActionBar() возвращает значение null. Теперь мне интересно, что мне не хватает?


person minhaz    schedule 06.05.2011    source источник


Ответы (5)


Theme.Holo.NoActionBar не является общедоступным в фреймворке. Вместо этого вы можете объявить свой собственный стиль следующим образом:

<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>
</style>
person Alexander Lucas    schedule 06.06.2011
comment
Я пытаюсь реализовать этот метод для подавления панели действий, но получаю сообщение об ошибке, когда пытаюсь установить для родителя значение android:Theme.Holo.Light. Я также пробовал @android:Theme.Holo.Light. Пожалуйста, помогите, я бился головой о клавиатуру, пытаясь понять это. - person aamiri; 08.05.2012
comment
Какую ошибку вы получаете? И на каких версиях платформы вы его получаете? С какими устройствами вы тестируете? - person Alexander Lucas; 09.05.2012
comment
Я еще не дошел до тестирования, я просто пытаюсь скомпилировать. Мое требование minSDK в манифесте — уровень API 8, но мой целевой API — 11. На самом деле я получаю 2 ошибки: ошибка: Ошибка при получении родителя для элемента: не найден ресурс, соответствующий заданному имени '@android:Theme.Holo .Светлый'. и Ошибка: не найден ресурс, соответствующий заданному имени: attr 'android:windowActionBar'. - person aamiri; 09.05.2012
comment
Причина, по которой я пытаюсь это сделать, заключается в том, что я хочу иметь возможность выделять текст в веб-просмотре в своем приложении, не предоставляя пользователю возможность копировать текст. Я хочу, чтобы панель действий, которая появляется в ics, не появлялась, когда пользователь выбирает текст. Приложение, над которым я работаю, поддерживалось вплоть до пряников, и мы хотим, чтобы эта функция, над которой я работаю, работала как на старых, так и на новых платформах. - person aamiri; 09.05.2012
comment
Упс, произошла небольшая синтаксическая ошибка. Попробуйте @android:style/Theme.Holo.Light (исправлено в посте). Кроме того, этого не будет для v8, только 11 и выше, поэтому убедитесь, что этот стиль используется только там, где он существует. - person Alexander Lucas; 09.05.2012

Я пришел к точно такому же выводу. Если вы не можете отобразить панель действий на экране, скорее всего, это:

  • окно не имеет заголовка; ActionBar - это, по сути, прославленная строка заголовка, поэтому нет заголовка = нет ActionBar, хотя это нигде не упоминается в документах.

  • вы пытались вызвать метод getActionBar() до настройки представления содержимого в действии. В этом случае этот метод возвращает null. Опять же, нигде не упоминается в документах, и если вы попытаетесь создать/изменить ActionBar как часть конструктора пользовательского представления, вам не повезло.

Подробнее о моих исследованиях ActionBar в Honeycomb можно найти в моем блоге здесь

person Community    schedule 22.08.2011

вы можете скрыть панель действий (которая будет отображаться в верхней части экрана). Если ваша активность связана с вкладками, используйте следующую строку после строки setcontentview

getParent().getActionBar().hide(); 

Если это нормальная деятельность, используйте

getActionBar().hide(); 

И установка в манифесте также работает для меня, но только для конкретной активности, которую вы можете установить таким образом, а не для приложения.

android:theme="@android:style/Theme.Holo.NoActionBar"
person Padma    schedule 17.05.2011

это помогло мне .. отредактировал значения /styles.xml следующим образом

<resources>

<style name="AppTheme" parent="android:Theme.Holo.Light.NoActionBar" />

</resources>
person Charan Pai    schedule 07.09.2012

Панель действий в Honeycomb не может быть скрыта, потому что нет физических кнопок для возврата из приложения, поэтому вы можете заманить пользователей в ловушку в приложении, если панель действий скрыта. Лучшее, что вы можете сделать, это перевести панель в режим «выключения света», когда вместо обычных значков на панели появятся маленькие точки.

См. эту ссылку: Есть ли способ скрыть системную панель в Android 3.0? Это внутреннее устройство, и я управляю навигацией

person Chris    schedule 06.05.2011
comment
OP относится к панели действий (идет вверху), которая отделена от панели, которая проходит внизу и включает в себя назад/домой/и т. д. - person Alexander Lucas; 07.06.2011