2013-05-09 3 views
0

Я хочу скрыть заголовок/панель действий в приложении для Android. У меня разные темы для разных прошивок Android. Это в мой манифест, который ссылается на файлы theme.xml ...Скрытие ActionBar в Android 3.0

android:theme="@style/MyAppTheme" 

Первый "theme.xml" --Works тонкой

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="MyAppTheme" parent="@android:style/Theme.Light.NoTitleBar"> 
     <!-- Any customizations for your app running on pre-3.0 devices here --> 
    </style> 
</resources> 

Второй "theme.xml" --This это моя проблема. Код не имеет ошибок, но когда я запускаю приложение в эмуляторе под управлением Android 3.1, панель действий по-прежнему находится наверху.

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="MyAppTheme" parent="@android:style/Theme.Holo.Light.NoActionBar"> 
     <!-- Any customizations for your app running on 3.0+ devices here --> 
    </style> 
</resources> 

Третий "theme.xml" --Works штраф

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="MyAppTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar"> 
     <!-- Any customizations for your app running on 4.0+ devices here --> 
    </style> 
</resources> 
+0

У вас есть второй _theme.xml_ в папке _values-v11_? Кроме того, я предполагаю, что вы имеете в виду, что вы пробовали 'Theme.Holo.Light.NoActionBar', поскольку нет' Theme.Holo.Light.NoTitleBar'. – zbr

+0

Да, у меня есть файл theme.xml в папке values-11. Извините за опечатку, которую я хотел сказать «Theme.Holo.Light.NoActionBar» - Отредактированный вопрос – Shane

+0

И теперь, когда у вас есть 'Theme.Holo.Light', это работает? – zbr

ответ

2

Если вы посмотрите here, вы можете видеть, что в API 13 действительно добавлен Theme.Holo.Light.NoActionBar. Поэтому я думаю, вы не сможете сделать это таким образом. Попробуйте использовать Theme.Holo.Light и делает это, чтобы удалить панель действий:

<style name="MyAppTheme" parent="@android:style/Theme.Holo.Light"> 
    <item name="android:windowActionBar">false</item> 
</style> 

Если это само по себе не работает, попробуйте также добавление <item name="android:windowNoTitle">true</item>, как ianhanniballake утверждает в своем ответе.

+0

Из последнего [источника] (https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/values/themes.xml), похоже, он также добавляет ' true' – ianhanniballake

+0

Это работает, спасибо! – Shane

+0

Добро пожаловать. Кстати, вам нужно было использовать функцию «windowNoTitle» из комментария ianhanniballake или нет? – zbr

0

Если второй theme.xml находится в папке values-v11, то он будет загружен только на v11 + (т.е. Honeycomb +) устройств и ваш третий должен находиться в папке values-v14 для устройств ICS + в соответствии с select a theme guide.

+0

Да, мой второй файл theme.xml находится в папке values-v11, а третья - в папке values-v14. Но я до сих пор не понимаю, почему я не могу использовать «Theme.Holo.Light.NoActionBar», когда у меня есть тема для более низкого api. – Shane

+0

Я предполагаю, что это предупреждение Lint (поскольку они являются единственными предупреждениями о минимальном уровне SDK) - можете ли вы очистить и перестроить проект и/или повторно запустить Lint в файле? – ianhanniballake

+0

Хорошо, перестройка проекта избавилась от ошибки, но когда я запускаю приложение в эмуляторе под управлением Android 3.1, панель действий все еще находится наверху? – Shane