Aunque hace ya algún tiempo que se publico Xamarin.Forms 3.2. Hoy voy a comentar cuales fueron las novedades más importantes de esta versión, siempre es importante saber que fue y a partir de qué versión empezaron esas novedades. Sobre todo sí tenemos proyectos viejos que nos puede interesar más o menos invertir tiempo en llevarlos a la última versión.
Por supuesto, siempre se puede echar un vistazo a la página oficial y ver detalladamente todos y cada una de las novedades y bugs corregidos. Pero yo hoy voy a comentar los que creo que son más importantes y que más pueden interesar al desarrollador en sus aplicaciones.
Span Binding ¡Por fin!
Por fin ya podemos elazar datos con este control y enlazar con nuestro ViewModel como si fuera una etiqueta (Label). La sintaxis y el funcionamiento es exactamente igual que cuando hablamos de un Binding para una etiqueta. Un ejemplo podría ser el siguiente:
1 |
<Span Text={Binding Nombre} /> |
Un pequeño truco que merece mencionar esta la posibilidad de insertar un salto de linea.
No hay que olvidar que hay que añadir el la libreria System en el encabezado de nuestro código Xaml.
xmlns:system=”clr-namespace:System;assembly={NOMBRE_PROYECTO}”
1 |
<Span Text="Linea 1" /><Span Text={x:Static system:Environment.NewLine} /> <Span Text="Linea 2" /> |
El control Entry
Se han includido varias propiedades nuevas para este control de cuadro de texto. Tenemos la propiedad MaxLength que nos facilita el asignar una longitud máxima a los datos introducidos.
1 |
<Entry MaxLength="8" Placeholder="User name" /> |
Así ahora podremos forzar de forma intuitiva al usuario que el dato introducido no permite una longitud mayor a la establecida.
La siguiente propiedad es IsTextPredictionEnabled, esta propiedad permite establecer tanto en Android como en iOS si la predicciones de escritura y autocorrección esta activada o no. Tan sencillo como añadir la propiedades con valores true o false en la sintaxis.
1 |
<Entry Placeholder="User name" IsTextPredictionEnabled="False" /> |
Por último, en este control, nos encontramos con la propiedad ReturnType. Por defecto, podremos decir que en su opción por defecto sería al equivalente a pulsar Enter (Intro) en una aplicación de escritorio.
Esta propiedad nos da la posibilidad de asignarle bastantes parametros diferentes en función de la imagen que queremos mostrar en el teclado. Esto no cambia el comportamiento del objeto entry pero si que le da al usuario un feedback de la accion que va a realizar cuando le de al boton de acción.
Podemos usar las propiedades ReturnCommand y ReturnCommandParamenter de la forma habitual para asignar las acción a completar.
Opción nueva para ListView
SelectionMode es la nueva propiedad que han añadido en el ListView para poder tener una lista y que ninguno quede seleccionado al tocarlo. Con asignar el valor None ya no habrá posibilidad de marcar ningún elemento de la lista.
Button Padding
¡Sí! Habeis leido bien. Cuantos de nosotros nos habremos hecho un Renderer esopecifico para poder especificar el margen entre el texto y el borde del botón. Pues ale, a quitar código viejo y a añadir na nueva propiedad a los botones de la aplicación.
La sintaxis, no tiene mas misterio que Padding=”10, 10, 10, 10″ como en cualquier otra propiedad similar.
OnPlatform cambia su sintaxis
Para no repetirme, puntualizaré que esta propiedad ahora es mucho más limpia y rapida. Sú código se puede resumir en una sola linea
<Image Source=”{OnPlatform Default=’myImage.png’, UWP=’Assets/myImage.png’}” />
Puedes leer en más detalle esta propiedad en mi artículo OnPlatform, cambios en Xamarin.Forms 3.2
BottomTabs para Android
Con está novedad ya nos depesdimos pero ello no la hace menos importante. Los desarrollos de Android a partir de ahora podrán disfrutar de la posibilidad de temer las pestañas en la parte inferior de nuestra pantalla. Como podeis imaginar estamos hablando de un PlatformSpecific y para poder usarlo, tan sencillo como el sieguien ejemplo.
Despues de incluir el namespace de AndroidSpecific, solo tenemos que añadir la propiedad ToolbarPlacement=”Bottom”.
1 2 3 4 5 |
<TabbedPage .... xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core" android:TabbedPage.ToolbarPlacement="Bottom" > ... </TabbedPage> |
A partir de ahora ya no será una obligación tener las pestañas arriba.
Así concluimos con este artículo, una vez más recordaros que podeis enviarme vuestras dudas, consultas y propuestas al formulario de contacto.