В чем разница между styles.xml и themes.xml
Могу ли я узнать, в чем разница между styles.xml
и themes.xml
? Для меня они выглядят так же, как оба XML находятся в одном формате.
<style name="...
<item name="...
Итак, в моем приложении, которое обеспечивает настройку раскраски, размера, рисования,... мне нужны и теги styles.xml
и themes.xml
? Как я могу решить, какой XML поставить в файл?
Ответы
Ответ 1
Из всей страницы Стили и темы. Вы можете искать эту строку.
Когда вы применяете стиль к одному виду в макете, свойства определенные стилем, применяются только к этому представлению. Если стиль применяется к ViewGroup, элементы Child View не будут наследовать свойства стиля - только элемент, к которому вы непосредственно применяете стиль будет применять его свойства. Однако вы можете применить стиль так, чтобы что он применяется ко всем элементам View - путем применения стиля в качестве темы.
Когда вы применяете в качестве темы, она изменяет все в области видимости, в зависимости от того, применяете ли вы ее к Activity или Application. Стиль более "локальный".
Ответ 2
Цитата из руководства Android API:
Чтобы создать набор стилей, сохраните XML файл в каталоге res/values/
вашего проекта. Имя файла XML произвольно, но оно должно использовать расширение .xml
и быть сохранено в папке res/values/
. Корневой файл node файла XML должен быть <resources>
.
Полная документация
Итак, я думаю, это не имеет значения, если вы помещаете какие-либо стили в любые файлы, если это xml файл, который находится в папке res/values/
.
Ответ 3
Не существует функциональной разницы между styles.xml и themes.xml, о чем указали многие ответы.
Стоит отметить, что приложение Google iosched2014 имеет ТОЛЬКО файл styles.xml(без тем .xml).
https://github.com/google/iosched
Ответ 4
Из раздела Стили и темы в разделе Определение стилей:
Чтобы создать набор стилей, сохраните файл XML в каталоге res/values /вашего проекта. Имя файла XML произвольно, но оно должно использовать расширение .xml и быть сохранено в папке res/values /.
The root node of the XML file must be <resources>.
Ответ 5
Я просто понимаю, что, например, цвета текста в панели инструментов входят в объявление темы, а для других аспектов - объявление стиля
<style name="ToolbarTheme" parent="ThemeOverlay.AppCompat.Light">
<item name="android:textColorPrimary">@android:color/white</item>
<item name="android:textColorSecondary">@android:color/white</item>
</style>
<style name="ToolbarStyle" parent="Base.Widget.AppCompat.Toolbar">
<item name="android:minHeight">?attr/actionBarSize</item>
<item name="android:background">@color/colorPrimary</item>
</style>
И в объявлении панели инструментов
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/ToolbarStyle"
android:theme="@style/ToolbarTheme">
</android.support.v7.widget.Toolbar>
Я попытался опустить тему, переместив ее элементы в стиль, но это не сработало. Таким образом, в этом случае кажется, что это только стили, которые являются темой, поскольку они влияют на унаследованные дочерние элементы на панели инструментов, такие как текстовые поля.
Ответ 6
Привет, вот статья, касающаяся разницы между стилями и темами XML в android пройдите
А также здесь андроид документация относительно стилей и тем в Android.