Rolagem Rápida de ListView no Android

Baixar exemplo Baixar o exemplo

Essa plataforma Android específica é usada para habilitar a rolagem rápida pelos dados em um ListView. Ele é consumido em XAML definindo a ListView.IsFastScrollEnabled propriedade anexada como um 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, ele pode ser consumido do C# usando a API fluente:

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);

O ListView.On<Android> método especifica que essa plataforma específica só será executada no Android. O ListView.SetIsFastScrollEnabled método, no Xamarin.Forms.PlatformConfiguration.AndroidSpecific namespace , é usado para habilitar a rolagem rápida pelos dados em um ListView. Além disso, o SetIsFastScrollEnabled método pode ser usado para alternar a rolagem rápida chamando o IsFastScrollEnabled método para retornar se a rolagem rápida está habilitada:

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

O resultado é que a rolagem rápida pelos dados em um ListView pode ser habilitada, o que altera o tamanho do polegar de rolagem:

ListView FastScroll Platform-Specific