Расширение стилей и тем путаницы

#android #layout #coding-style #themes #extending

#Android #макет #стиль кодирования #темы #расширение

Вопрос:

В моем манифесте у меня было что-то вроде этого

 <activity android:name=".MyActivity"
     android:label="@string/app_name"
        name="Theme.NoTitleBar"...
  

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

Но теперь я хочу настроить тему (я хочу расширить тему Android по умолчанию), и я создал эту тему

 <style name="Theme.NoTitleBar.new_skin" parent="android:Theme">
        <item name="text_body_read">@style/text_body_read</item>
        <item name="text_body_unread">@style/text_body_unread</item>
    </style>
  

затем в манифесте, который я установил name="Theme.NoTitleBar.new_skin" , но строка заголовка все еще отображается.

как я могу скрыть строку заголовка и сохранить свою новую пользовательскую тему?

и еще один вопрос: означает ли добавление точек «.» расширение при работе со стилями?

Ответ №1:

в вашем mainfest вы должны написать что-то вроде:

 <activity android:name=".MyActivity"
     android:label="@string/app_name"
        name="MyTheme"...
  

В вашем styles.xml вы должны написать что-то вроде:

 <style name="MyTheme" parent="android:Theme.NoTitleBar">
        <item name="text_body_read">@style/text_body_read</item>
        <item name="text_body_unread">@style/text_body_unread</item>
 </style>
  

Точка (.) не означает расширения. Это означает ссылку на определенный элемент (listview, textview и т. Д.) В вашей теме. Например, у вас будет:

 <style name="MyTheme.Widget.ListView" parent="@android:style/Widget.ListView.White">
</style>
  

чтобы определить стиль вашего listview.

Комментарии:

1. проблема в том, что у меня в манифесте есть name=»MyTheme» и parent =»android:Theme. NoTitleBar» в стиле, но у меня все еще видна строка заголовка

2. попробуйте следующее: 1. внутри вашего стиля темы добавьте: <имя элемента =»android:windowTitleBackgroundStyle»>@style/MyTheme. WindowTitleBackground</item> 2. создайте новый стиль: WindowTitleBackground» parent=»android:WindowTitleBackground»> <имя элемента =»android:background»>@null</item> </style>

3. Это выдает ошибку, не удалось найти parent=»android: WindowTitleBackground, но какой смысл в фоновом режиме? Мне нужно, чтобы строка заголовка была скрыта

4. это делает ваш заголовок не видимым.

5. eclipse жалуется на parent=»android: WindowTitleBackground», в нем говорится, что ресурс не найден…