В чем разница между стилями.XML и темы.XML


могу ли я узнать, в чем разница между styles.xml и themes.xml? Для меня они просто выглядят одинаково, поскольку оба XML находятся в одном формате.

<style name="...
    <item name="...

так, в моем приложении, которые обеспечивают настройку окраски, размер, drawable, ... мне нужны оба styles.xml и themes.xml так же? Как я должен решить, какой XML поместить в какой файл?

6   51  

6 ответов:

из всей страницы стили и темы. Возможно, вы ищете эту линию.

при применении стиля к одному виду в макете свойства определенные стилем применяются только к этому виду. Если стиль есть при применении к группе представлений дочерние элементы представления не наследуют свойства стиля-только тот элемент, к которому вы непосредственно применяете стиль будет применять свои свойства. Однако, вы можете применить стиль так что это применяется ко всем элементам представления-путем применения стиля в качестве темы.

при применении в качестве темы, он изменяет все в области, в зависимости от того, если вы применили его на деятельности или приложения. Стиль более "местный".

цитируется из руководства Android API:

чтобы создать набор стилей, сохраните XML-файл в res/values/ каталог вашего проекта. Имя XML-файла является произвольным, но он должен использовать .xml расширение и быть сохранены в . Корневой узел XML-файла должен быть <resources>.

полная документация

так что я думаю, что это действительно не имеет значения, если вы поместите какие-либо стили в любые файлы, пока это xml файл, который находится в .

нет никакой функциональной разницы между стилями.XML и темы.xml, как указано во многих ответах.

стоит отметить, что приложение Iosched2014 от Google имеет только стили.xml (без тем.XML.)

https://github.com/google/iosched

взято с стили и темы документ, в разделе определение стилей:

чтобы создать набор стилей, сохраните XML-файл в каталоге res/values/ вашего проекта. Имя XML-файла является произвольным, но он должен использовать .расширение xml и будет сохранено в папке res/values/.

The root node of the XML file must be <resources>.

Я просто понимаю, что, например, цвета текста панели инструментов входят в объявление темы, а для других аспектов-в объявление стиля

<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>

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

привет вот статья, касающаяся разницы между стилями и темами XML в android перейдите через

а также здесь андроид документация что касается стилей и тем в Android.