Xamarin.Forms es una gran ayuda a la hora de desarrollar aplicaciones para las tres principales plataformas móviles (Windows, iOS y Android), aunque a veces te puede dar algún que otro quebradero de cabeza. Por ejemplo con los Grids, ya que la interpretación que hace cada una de las plataformas de los controles es muy distinta.
¿Cuál es el problema?
En el caso de los Grids de Xamarin.Forms, Windows es la que lo interpreta de la forma que esperamos como «normal«, mientras que en Android y en iOS, parece que existan márgenes entre las filas y las columnas del grid (además de que son diferentes entre ambas plataformas).
La intuición puede engañarte en este caso ya que, si probablemente no has indicado ningún tipo de margen (bueno en Xamarin.Forms lo que hay es padding), pensarás que es problema de los elementos de contenido de cada una de las «celdas» del Grid. Pero, si pones background de colores a esos contenidos, te darás cuenta de que los márgenes entre los elementos son exactos y que se corresponden con las celdas del propio Grid.
¿Cómo puedes solucionarlo?
Para resolver este «problema» tan sólo tienes que hacer uso de una propiedad de los Grids, «RowSpacing» tal y como se muestra en el ejemplo:
<Grid RowSpacing="0"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/>; </Grid.RowDefinitions> <Label Grid.Row="0" Text="Fila 1" /> <Label Grid.Row="1" Text="Fila 2" /> <Label Grid.Row="2" Text="Fila 3" /> </Grid>
Así, solucionarías el problema en las tres plataformas y conseguirías prácticamente la «misma» visualización en todas las plataformas; dependiendo de los controles que pongas como contenido de cada una de las celdas del Grid.
Resumen
En definitiva, Xamarin.Forms te aporta muchas ventajas y con un poco de maña y unos cuántos trucos, puedes conseguir que sea realmente muy potente y efectivo a la hora de construir tus aplicaciones 😉