Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

¿Qué es un tema?

16/20
Recursos

Aportes 13

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Tener estilos es una manera correca de compartir atributos para nuestros widgets, compartir atributos que representan como se ve la aplicación. Es una buena practica si en algún momento hay que rediseñar.


Tema: Es un estilo aplicado globalmente, quiere decir que cuando hagamos alguna modificación todos los elementos van a representar ese cambio.


Archivo Manifest: Es la sección donde definimos las pantallas que tenemos con respecto al código. (También es afectado por los temas)


Un Style aplica sus reglas de manera independiente.
Un Theme aplica sus reglas de manera global

¿Qué es un tema?
Usar estilos es una buena práctica para definir características de los elementos, sin embargo, también existen los temas. Un tema es un estilo globalmente, va a aplicar para ViewGroups o Layouts o toda la aplicación, cuando se haga una modificación de un tema se verá reflejado en todos los elementos que lo tengan.

Android ya te da un tema para la aplicación, pero se pueden crear nuestros propios temas.

Un punto a tener en cuenta es que no hay una forma directa de diferenciar un tema de un estilo en el archivo de styles.xml, ya que los temas también se crean con el tag style.

<h4>Crear tema</h4>

Sigue la misma estructura que un estilo:

<style name="AppTheme.Red" parent="AppTheme">
	<item name="android.background">#FF0000</item>
</style>

Para asignar el tema a un layout se usa el atributo android.theme:

android:theme="@style/AppTheme.Red"

Es importante mencionar que cada elemento puede sobrescribir individualmente sus estilos.

Para ver el tema que está asignamos en el archivo XML de la actividad en la vista de diseño tenemos que cambiarlo manualmente desde la parte superior de esta. Desde ahí podemos seleccionar entre los temas que tengamos definidos

Un tema es un estilo aplicado globalmente

Los estilos son útiles para compartir atributos entre widgets. Dichos atributos de comparten de forma individual entre cada Widget.

Los temas por otra parte son estilos aplicados globalmente, es decir, se van a aplicar a ViewGroups, layouts o para toda la App. Cuando se hace una modificación en un tema, dicho cambio se ve involucrado en todos los elementos implicados.

📄 AndroidManifest.xml: es una sección en la que se definen las pantallas que se tienen con respecto al código. Es muy común que dentro del tag <application> exista un atributo llamado android:theme="@style/AppTheme" en el que se define el tema global de la aplicación.

Crear un tema

<!-- CUSTOM THEME -->
<style name="AppTheme.Red" parent="AppTheme">
    <item name="background">#FFFF0000</item>
</style>

Aplicar un tema en una App

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:theme="@style/AppTheme.Red"></androidx.constraintlayout.widget.ConstraintLayout>

Si bien en un tema se establecen estilos globales cada elemento individual puede sobrescribir estos estilos.

En las nuevas versiones de AndroidStudio LOS THEMES ya se los encuetra en directorios separados para evitar la confusion entre un style y un theme

Los estilos es una manera apropiada de compartir atributos para los elementos de manera individual.
Los temas sirven para los mismo solo que aplicado globalmente, es decir, va a aplicar para viewgroups, layouts o para toda la aplicación. Cuando hagamos una modificación en un tema todos los elementos involucrados van a ver reflejado este cambio.

Temas
Es un estilo que se aplica a cualquier elemento, es decir es global
Porque los temas se indican con theme="" y los estilos con style="" si en android studio ambos se instancian con style en la hoja de estilos?

Compañeros quería compartirles algo, yo cree el archivo de styles dentro de values, pensando que mi proyecto no lo traía por defecto. Sin embargo en esta clase me di cuenta que este archivo ya existía
Se encuentra dentro de la carpeta **values **en una sub carpeta themes

A mi no me funciono ni cambiando el archivo manifest, limpie y reconstruí el proyecto en fin gajes del oficio.

Vi que para el color rojo del background quedo sin querer una “f” minúscula, tiene algo que ver que eso haya afectado la imagen y no al botón o da lo mismo escribir los hexadesimales con mayúsculas que con minúsculas?

Temas vs Estilos
Un tema se va aplicar de manera global a cosas como por ejemplo el tamaño del texto pero un estilo va aplicar individualmente. Si hay cambios globales que nos importan en cada uno de nuestros elementos y van afectar en cada uno de nuestros elementos es donde tenemos que escoger un tema.