Estilos en XAML
Clase 31 de 83 • Curso de Xamarin 2018
Contenido del curso
Introducción a Xamarin
Preparando el entorno para Xamarin
- 5

Requerimientos del sistema para instalar Visual Studio
04:17 min - 6

Xamarin en Mac
02:21 min - 7

Instalando Visual Studio en Mac OS
00:57 min - 8

Xamarin en Windows
02:16 min - 9

Instalando Visual Studio en Windows
02:24 min - 10

Xamarin Emuladores iOS y Android
02:50 min - 11

Crear un Emulador Android en Windows con Visual Studio
00:33 min
Comenzando un Proyecto en Xamarin Forms
Eventos en Xamarin Forms
SQLite en Xamarin Forms
- 19

Implementando SQLite en Xamarin Forms Windows
00:20 min - 20

Implementando SQLite en Xamarin Forms
03:24 min - 21

Creando el Modelo Tarea en Xamarin Forms
06:11 min - 22

Creando el Modelo Tarea en Xamarin Forms Windows
00:19 min - 23

Creando una base de datos SQLite en Xamarin Forms
11:43 min - 24

Insertando un registro en la base de datos
09:16 min - 25

Implementando Listas
05:23 min - 26

Leyendo datos desde SQLite
10:25 min - 27

Actualizando datos SQLIte
06:13 min - 28

Implementando Filtros SQLite
10:06 min
Recursos y estilos en XAML Xamarin Forms
Xamarin Nativo, comenzando con PlatziTrips
Xamarin.Android
Xamarin.iOS
Proyectos compartidos en Xamarin
SQLite en Xamarin
- 39

Integrando SQLite en el PCL de Xamarin
06:40 min - 40

Insertando elementos a la base de datos en Xamarin
05:43 min - 41

Usando ScrollView en Xamarin.Android
08:45 min - 42

SQLite en el proyecto Xamarin.Android
10:33 min - 43

Utilizando NavigationController en Xamarin.iOS
11:21 min - 44

SQLite en el proyecto Xamarin.iOS
09:23 min
Listas en Android
Listas en iOS
Consultado Servicios REST en Xamarin
- 55

Foursquare y PlatziTrips
07:21 min - 56

Definiendo URL base de Foursquare
07:20 min - 57

Creando un Deserializador JSON en Xamarin
12:52 min - 58

Layout con Toolbar en Xamarin Android
11:11 min - 59

Pasando parámetros entre Activities en Xamarin Android
12:07 min - 60

Llenando un Spinner en Xamarin Android
15:52 min - 61

Creando una pantalla de búsqueda en Xamarin Android
14:46 min - 62

Implementando un toolbar con botón de guardar en Xamarin Android
11:30 min - 63

Implementando Selección Múltiple en un ListView
13:00 min - 64

Leyendo sitios de interés desde base de datos
14:20 min - 65

Segues con identificador en Xamarin iOS
04:53 min - 66

Pasando parámetros entre Controllers en Xamarin iOS
13:20 min - 67

Creando un PickerView en Xamarin iOS
07:54 min - 68

Mostrando datos en un PickerView Xamarin iOS
16:07 min - 69

Creando un UITableViewSource en Xamarin iOS
16:54 min - 70

TableViews de multiple selección en Xamarin iOS
08:46 min - 71

Creando una pantalla de búsqueda en Xamarin iOS
06:28 min
Mapas en Xamarin
Publicando Apps en Xamarin
- 76

PlatziTrips en Xamarin iOS y Android
10:27 min - 77

Creando un apk en Xamarin Android
07:27 min - 78

Probando en un dispositivo real Android con Xamarin
04:26 min - 79

Creando certificados para publicar en iOS con Xamarin
12:45 min - 80

Creando un ipa y registrando la app en Apple Store
04:15 min - 81

Probando en un dispositivo real iOS con Xamarin
01:03 min - 82

Publicando en Apple Store
01:23 min
Fin del Curso de Xamarin
Así como hemos agregado algunos colores como recursos de la aplicación, nosotros podemos definir estilos, que van más allá de definir diccionarios, y nos permiten reutilizar código XAML aún más.
Un estilo nos permitirá establecer la forma en que los elementos se van a mostrar, definido directamente como un recurso que podemos utilizar a lo largo de toda la aplicación.
Ventajas
Ya hemos reutilizado bastante código XAML al definir recursos que reutilizamos en varios elementos, pero aún tuvimos por ejemplo que definir el valor del texto de los Entries en cada uno, y si el valor es el mismo, establecer estilos nos puede ahorrar una línea de código justo ahí. Por supuesto, este ahorro crece con nuestra aplicación, si tuviéramos decenas de Entries, bastaría con definir el estilo una vez.
Definiendo un estilo
Resolvamos el pequeño problema de estar duplicando el código que define el color del texto de los entries que tenemos en la aplicación. Recordarás que tanto para el Entry de usuario, como para el de contraseña y el de nombre de tarea, definimos un color de texto a ser exactamente el mismo recurso. Esto lo podemos hacer más eficiente definiendo que todos los entries deben tener ese color de texto, a través de un estilo en el archivo App.xaml (para que esté disponible en toda la aplicación):
<Application.Resources> <ResourceDictionary> <Color x:Key="accentColor">#293275</Color> <Color x:Key="buttonTextColor">#FFFFFF</Color> <Style TargetType="Entry"> <Setter Property="TextColor" Value="{StaticResource accentColor}"/> </Style> </ResourceDictionary> </Application.Resources>
El resultado es que podemos, en todos los entries, quitar la línea que establece el color del texto, y aún mantener el mismo color, que esta vez se define desde el estilo.
Nota que para definir el estilo estableces el tipo en el que va a ser usado, en este caso definimos el objetivo como Entry. Hecho esto, se definen setters, cada uno con la propiedad a modificar y el valor que será asignado. En este ejemplo, he definido que el valor para la propiedad TextColor, será la del recurso que llamamos accentColor.
Ahora, este estilo se va a establecer automáticamente a todos los Entries que se definan en la aplicación, y era justo lo que necesitaba, pero ¿qué pasa si he modificado un poco la vista para agregar una nueva tarea para que se vea así?
Lo que necesito es que el primer label tenga un estilo diferente a la del segundo y tercero. Siempre podemos modificar directamente en la definición de un elemento, los valores que provienen del estilo. Por ejemplo, podríamos definir un estilo que aplique a todos los Labels, y en la definición de este primer Label, cambiar el tamaño de letra, o el color.
Pero regresamos al escenario al que esto no nos permite reutilizar estos estilos. Lo conveniente sería definir un estilo para Labels de título y otro para Labels de subtítulo, y así si podría reutilizarlos la próxima vez que requiera el mismo estilo. Para esto, en la definición del estilo, tendremos que establecer el Key, tal como lo hicimos con los recursos:
<Style x:Key="titleLabel" TargetType="Label"> <Setter Property="FontSize" Value="25"/> <Setter Property="FontAttributes" Value="Bold"/> </Style> <Style x:Key="subtitleLabel" TargetType="Label"> <Setter Property="TextColor" Value="{StaticResource accentColor}"/> </Style>
Ahora que tienen una clave para ser identificados, los estilos no son asignados automáticamente a los Labels que están definidos en la aplicación, tendremos que asignarlos manualmente, para que cada elemento sepa que estilo debe usar:
<Label Text="Nueva tarea" Style="{StaticResource titleLabel}"/> <Label Text="Nueva tarea" Style="{StaticResource subtitleLabel}" Grid.Row="1"/> <Entry x:Name="nombreEntry" Grid.Row="2" Placeholder="Nombre de la tarea" Text="Tarea 1" Grid.ColumnSpan="2"/> <Label Text="Nueva tarea" Grid.Row="3" Style="{StaticResource subtitleLabel}"/> ...
Así hemos definido dos estilos orientados al mismo tipo de elemento (Label) y lo hemos asignado a los elementos correspondientes, para un resultado como este:
Ahora, si necesitamos cambiar algo por ejemplo a las etiquetas de texto para los subtítulos, sólo lo hacemos en el estilo definido en los recursos de la aplicación:
<Style x:Key="subtitleLabel" TargetType="Label"> <Setter Property="FontSize" Value="13"/> <Setter Property="TextColor" Value="{StaticResource accentColor}"/> </Style>
Y los cambios se aplicarán: