Desplazamiento rápido de ListView en Android

Download SampleDescargar el ejemplo

Esta característica específica de la plataforma Android se usa para habilitar el desplazamiento rápido por los datos de ListView. Se consume en XAML configurando la propiedad adjunta ListView.IsFastScrollEnabled en un valor boolean:

<ContentPage ...
             xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core">
    <StackLayout Margin="20">
        ...
        <ListView ItemsSource="{Binding GroupedEmployees}"
                  GroupDisplayBinding="{Binding Key}"
                  IsGroupingEnabled="true"
                  android:ListView.IsFastScrollEnabled="true">
            ...
        </ListView>
    </StackLayout>
</ContentPage>

Como alternativa, se puede consumir desde C# mediante la API fluida:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;
...

var listView = new Xamarin.Forms.ListView { IsGroupingEnabled = true, ... };
listView.SetBinding(ItemsView<Cell>.ItemsSourceProperty, "GroupedEmployees");
listView.GroupDisplayBinding = new Binding("Key");
listView.On<Android>().SetIsFastScrollEnabled(true);

El método ListView.On<Android> especifica que esta plataforma específica solo se ejecutará en Android. El método ListView.SetIsFastScrollEnabled, en el espacio de nombres Xamarin.Forms.PlatformConfiguration.AndroidSpecific, se usa para habilitar el desplazamiento rápido por los datos de ListView. Además, el método SetIsFastScrollEnabled se puede usar para alternar el desplazamiento rápido llamando al método IsFastScrollEnabled para devolver si el desplazamiento rápido está habilitado:

listView.On<Android>().SetIsFastScrollEnabled(!listView.On<Android>().IsFastScrollEnabled());

El resultado es que se puede habilitar el desplazamiento rápido por los datos de ListView, lo que cambia el tamaño del pulgar de desplazamiento:

ListView FastScroll Platform-Specific