Desplazamiento rápido de ListView en Android

Ejemplo de descarga Descarga del ejemplo

Esta plataforma específica de Android se usa para habilitar el desplazamiento rápido a través de los datos de un ListView . Se consume en XAML estableciendo la ListView.IsFastScrollEnabled propiedad adjunta en un boolean valor:

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

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

El resultado es que se puede habilitar el desplazamiento rápido a través de los datos de , lo que cambia el tamaño del control de ListView desplazamiento:

ListView FastScroll Platform-Specific