Problema con ListView dentro de un CardView en Xamarin Forms

¡Hola!
El otro día me encontré con un pequeño (no tan pequeño) problema utilizando el control CardView donde cada elemento del carrusel era un ListView. Algo parecido a lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
    <?xml version="1.0" encoding="utf-8"?>
    <ContentPage
        xmlns="http://xamarin.com/schemas/2014/forms"
        xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
        xmlns:d="http://xamarin.com/schemas/2014/forms/design"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:cards="clr-namespace:PanCardView;assembly=PanCardView"
        mc:Ignorable="d"
        x:Name="this"
        x:Class="FixListViewWithCardsView.MainPage">
 
       <cards:CarouselView
           ItemsSource="{Binding Novels}">
           <cards:CarouselView.ItemTemplate>
               <DataTemplate>
 
                   <ListView
                       IsPullToRefreshEnabled="True"
                       RefreshCommand="{Binding Source={x:Reference this},Path=BindingContext.RefreshNovelCommand}"                   
                       ItemsSource="{Binding Characters}">
                       <ListView.Header>
                           <Label
                               FontSize="Large"
                               HorizontalTextAlignment="Center"
                               VerticalTextAlignment="Center"
                               HeightRequest="150"
                               Text="{Binding Title}"/>
                       </ListView.Header>                  
                   </ListView>
 
               </DataTemplate>
           </cards:CarouselView.ItemTemplate>
       </cards:CarouselView>
 
    </ContentPage>

Continúa leyendo Problema con ListView dentro de un CardView en Xamarin Forms

Cambiar colores a un QR en Xamarin Forms

¡Hola!
Normalmente, cuando queremos pintar un código QR en Xamarin Forms, utilizamos la librería ZXing seguramente a través del NuGet ZXing.Net.Mobile. El problema lo podemos tener cuando queremos modificar los colores con los que se pinta el QR, debido a que no tenemos la opción en la librería para poder modificarlos. Un ejemplo básico para mostrar un QR en Xamarin Forms sería algo así: Continúa leyendo Cambiar colores a un QR en Xamarin Forms

Recortar textos con StringInfo en Xamarin Forms

¡Hola!
Antes que nada, si ya conoces la clase StringInfo seguramente te puedas ahorrar leer esta entrada 🙂 La cosa es que hoy estaba depurando un error en una aplicación Xamarin Forms (el problema no es exclusivo de XF) y me encontré con algo bastante curioso, al menos para mí. En la siguiente captura vamos a ver algo que representa más o menos lo que tenía: Continúa leyendo Recortar textos con StringInfo en Xamarin Forms

Sobrescribir implementación original de un Renderer en Xamarin Forms

¡Hola!
Cuando en Xamarin Forms utilizamos algún control de una librería externa, muchas veces (casi siempre) utiliza implementaciones nativas, es decir, lo que típicamente llamamos Renderers. A veces nos ocurre que queremos modificar el comportamiento, extender o aplicar alguna correcciones a esos Renderers, ¿qué hacemos normalmente en estos casos? Creamos un control nuevo en nuestro código compartido que herede del control original y hacemos lo mismo en las diferentes plataformas. Lo vemos en un ejemplo:
Continúa leyendo Sobrescribir implementación original de un Renderer en Xamarin Forms

Ajustar Label multilínea en Xamarin Forms

¡Hola!
Hoy vamos a ver cómo podemos ajustar el ancho del texto de una Label que contiene más de una línea en Xamarin Forms. El problema ocurre cuando tenemos una Label y el texto es lo suficientemente largo para que se muestre en más de una línea, en ese momento (en cuanto el texto ocupa más de una línea), la Label siempre se expandirá horizontalmente dentro de su contenedor. Dicho así, seguramente sonará un poco enrevesado, pero vamos a verlo con extracto de XAML y una imagen.
Continúa leyendo Ajustar Label multilínea en Xamarin Forms

Crear contenido dinámico en Xamarin Forms

¡Hola!
Es posible que alguna vez, en una aplicación móvil XF, te hubiese sido interesante añadir contenido de forma dinámica a alguna pantalla. Con esto me refiero a contenido totalmente nuevo, es decir, tienes tu aplicación en el market correspondiente y quieres añadir o cambiar, por ejemplo, algún control de alguna página, pero antes de subir tu aplicación al market no sabes cómo será ese contenido. La solución obvia es cambiar el código, compilar, subir una nueva versión de la aplicación y esperar a que tus usuarios se la descarguen. Pero si has tenido algunas cosas en cuenta puedes generar y cargar XAML en caliente en alguna pantalla. Continúa leyendo Crear contenido dinámico en Xamarin Forms

DependencyResolver en Xamarin Forms

¡Hola!
Hace unos días echamos un vistazo al Dependency Service de Xamarin Forms (en esta entrada) y cómo podíamos ampliar un poco sus capacidades para sacarle un poco más de jugo (código). Pues a raíz de eso, me di cuenta que en las nuevas versiones de Xamarin Forms (en concreto a partir de la 3.1) se ha añadido una nueva forma de resolver las instancias (aquí el issue en GitHub), junto con una nueva clase estática llamada DependencyResolver. Continúa leyendo DependencyResolver en Xamarin Forms

UITests + ApprovalTests en Xamarin Forms

¡Hola!
El otro día pude ver (a grandes rasgos) el funcionamiento general de los test de UI en Xamarin Forms. En cuanto vi la sentencia app.Screenshot(«Welcome screen») automáticamente me acordé de ApprovalTests y cómo se generaban los test de aprobación para aplicaciones Windows Forms o WPF que, en esencia, se basa en hacer una captura de pantalla del formulario/ventana/control correspondiente y comprobarlo con la captura que previamente hemos aprobado. Si no sabes cómo funciona la librería ApprovalTest hace un tiempo escribí algunas entradas sobre ella (1, 2 y 3).
Continúa leyendo UITests + ApprovalTests en Xamarin Forms

DependencyService vitaminado en Xamarin Forms

¡Hola!
Si has trabajado con Xamarin Forms seguro que has utilizado en algún momento DependencyService. Este servicio nos permite poder llamar a funciones de las diferentes plataformas (iOS, Android…) desde nuestro código compartido; típicamente crearemos una interfaz en nuestro proyecto compartido y las implementaciones correspondientes en las diferentes plataformas que serán decoradas con el atributo Dependency (aquí puedes ver una estupenda explicación). Continúa leyendo DependencyService vitaminado en Xamarin Forms