android - textappearance - ¿Cuál es la diferencia entre styles.xml y themes.xml?
theme editor android studio (6)
Citado de la guía API de Android:
Para crear un conjunto de estilos, guarde un archivo XML en el directorio
res/values/
de su proyecto. El nombre del archivo XML es arbitrario, pero debe usar la extensión.xml
y guardarse en la carpetares/values/
. El nodo raíz del archivo XML debe ser<resources>
.
Así que supongo que realmente no importa si colocas cualquier estilo en cualquier archivo, siempre que sea un archivo xml que se encuentre en res/values/
folder.
¿Puedo saber cuál es la diferencia entre styles.xml
y themes.xml
? Para mí, solo tienen el mismo aspecto ya que ambos XML están en el mismo formato.
<style name="...
<item name="...
Por lo tanto, en mi aplicación que proporciona personalización para colorear, tamaño, dibujable, ... ¿necesito ambos styles.xml
y themes.xml
también? ¿Cómo debo decidir qué XML poner en qué archivo?
Fuera de toda la página de Estilos y Temas . Usted puede estar buscando esta línea.
Cuando aplica un estilo a una sola Vista en el diseño, las propiedades definidas por el estilo se aplican solo a esa Vista. Si se aplica un estilo a un ViewGroup, los elementos de vista secundarios no heredarán las propiedades de estilo; solo el elemento al que aplique directamente el estilo aplicará sus propiedades. Sin embargo, puede aplicar un estilo para que se aplique a todos los elementos de la Vista, aplicando el estilo como un tema.
Cuando se aplica como tema, cambia todo en el alcance, dependiendo de si lo aplicó a Actividad o Aplicación. El estilo es más "local".
Hola, aquí hay un artículo sobre la diferencia entre estilos y temas XML en android, por favor revisa
Y también aquí la documentación de Android con respecto a estilos y temas en Android.
Me estoy dando cuenta de que, por ejemplo, los colores de texto de la barra de herramientas entran en una declaración de tema y, para otros aspectos, entran en una declaración de estilo
<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>
Y en la declaración de la barra de herramientas
<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>
Traté de omitir el tema moviendo sus elementos al estilo, pero eso no funcionó. Entonces, en este caso, parece que estos son solo estilos que son como un tema, ya que afectan a los hijos heredados en la barra de herramientas, como los campos de texto.
No hay diferencia funcional entre styles.xml y themes.xml como muchas respuestas han indicado.
Vale la pena señalar que la aplicación iosched2014 de Google solo tiene un styles.xml (no themes.xml).
Tomado del documento Estilos y temas , en la sección Definición de estilos:
Para crear un conjunto de estilos, guarde un archivo XML en el directorio res / values / de su proyecto. El nombre del archivo XML es arbitrario, pero debe usar la extensión .xml y guardarse en la carpeta res / values /.
The root node of the XML file must be <resources>.