Desplazamiento rápido de ListView en Android

Descargar ejemploDescargar el ejemplo

Esta plataforma Android específica se usa para habilitar el desplazamiento rápido por 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 Xamarin.Forms.PlatformConfiguration.AndroidSpecific espacio de nombres , se usa para habilitar el desplazamiento rápido por los datos de .ListView Además, el SetIsFastScrollEnabled método se puede usar para alternar el desplazamiento rápido llamando al IsFastScrollEnabled método 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 control de desplazamiento:

ListView FastScroll Platform-Specific