ListView Fast Scrolling unter Android

Beispiel herunterladen Das Beispiel herunterladen

Diese Android-Plattformspezifische Wird verwendet, um das schnelle Scrollen durch Daten in einem ListViewzu ermöglichen. Es wird in XAML verwendet, indem die ListView.IsFastScrollEnabled angefügte Eigenschaft auf einen boolean Wert festgelegt wird:

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

Alternativ kann sie über C# mit der Fluent-API genutzt werden:

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

Die ListView.On<Android> -Methode gibt an, dass diese plattformspezifische Version nur unter Android ausgeführt wird. Die ListView.SetIsFastScrollEnabled -Methode im Xamarin.Forms.PlatformConfiguration.AndroidSpecific -Namespace wird verwendet, um das schnelle Scrollen durch Daten in einem ListViewzu ermöglichen. Darüber hinaus kann die SetIsFastScrollEnabled -Methode verwendet werden, um schnelles Scrollen durch Aufrufen der IsFastScrollEnabled -Methode umzuschalten, um zurückzugeben, ob das schnelle Scrollen aktiviert ist:

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

Das Ergebnis ist, dass das schnelle Scrollen durch Daten in einem ListView aktiviert werden kann, wodurch sich die Größe des Bildlauffingers ändert:

ListView FastScroll Platform-specific