2014-05-17 3 views
6

Я хочу скрыть строку заголовка (где показана игровая панель) в моем приложении. Я делаю это, установив пункт android:windowNoTitle на номер true. Это отлично подходит для устройств с API уровня 19. Я тестировал его с устройством, на котором запущен API 10, и он скрывает панель уведомлений. Плитка все еще отображается.Android styles.xml windowNoTitle (ActionBarActivity)

Вот мой res/values/styles.xml

<resources> 
    <style name="AppBaseTheme" parent="Theme.AppCompat.Light"> 
     <item name="android:windowNoTitle">true</item> 
     <item name="android:windowFullscreen">true</item> 
    </style> 

</resources> 

EDIT: Я использую AppBaseTheme в качестве темы в моем манифесте. Других файлов styles.xml нет в любой другой папке value-vXX.

Редактировать # 2: Я расширяю ActionBarActivity для своей деятельности.

+3

добавить 'requestWindowFeature (Window.FEATURE_NO_TITLE);' перед setContentView (layout) в вашем методе onCreate(). и для полноэкранного использования 'getWindow(). SetFlags (WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); ' – Kunu

+0

такой же результат. не работая под пряниками. – Armin

+1

Кажется, вы используете ** 2 разных названия тем ** ('AppTheme' и' AppBaseTheme').И темы ** не отличаются **. Таким образом, не только бесполезно иметь 2 темы, но и имена должны быть одинаковыми. –

ответ

1

Я использую 1 тему для всех устройств, и она отлично работает на уровне API с 8 по 16 (так как у меня есть только 5 физических устройств). Я уверен, что он работает и с 17-19 устройствами.

Убедитесь, что в вашем файл манифеста (в разделе приложений), есть строка, как андроид: тема = «@ стиль/AppTheme»

Попробуйте использовать это для вашей темы:

<style 
    name="AppBaseTheme" 
    parent="android:style/Theme.NoTitleBar.Fullscreen" 
    > 
    <item name="android:windowNoTitle">true</item> 

    ... 

</style> 

и удалить стили/темы в values-xy папки

[EDIT]

с т Тема AppCompat не является полноэкранным, по определению, StatusBar уйдет, но не TitleBar

Если вам не нужен ActionBar, предлагаемый AppCompat, вы должны как можно скорее избавиться от AppCompat : не раздувайте свои приложения с помощью unneeded и вещей

Например, у меня есть панель заголовка и нижняя колонтитула, но это просто RelativeLayouts, которые я реализовал самостоятельно.
И все же свобода использования всей поверхности экрана.

0

Я попытался android:style/Theme.NoTitleBar.Fullscreen в styles.xml, но я получил:

Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. 

Так что я последовал совету прилипать к теме AppCompat, и может скрыть строку состояния и ActionBar, используя следующие строки в styles.xml:

<resources> 
    <style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> 
     <item name="android:windowNoTitle">true</item> 
     <item name="android:windowFullscreen">true</item> 
    </style> 
</resources> 
7

попробовать использовать это

<style name="MyMaterialDialog" parent="Base.Theme.AppCompat.Light.Dialog.MinWidth"> 
    <item name="windowNoTitle">true</item> 
    <item name="windowActionBar">false</item> 
</style> 

удалить префикс android!

+0

Это правильный ответ, спасибо! –

Смежные вопросы