Android での ListView の高速スクロール
この .NET Multi-platform App UI (.NET MAUI) Android プラットフォーム固有の機能を使用して、ListView でデータの高速スクロールを有効にします。 ListView.IsFastScrollEnabled
添付プロパティを boolean
の値に設定すれば、XAML で使用されます。
<ContentPage ...
xmlns:android="clr-namespace:Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific;assembly=Microsoft.Maui.Controls"
xmlns:local="clr-namespace:PlatformSpecifics"
x:DataType="local:ListViewViewModel">
<StackLayout>
...
<ListView ItemsSource="{Binding GroupedEmployees}"
GroupDisplayBinding="{Binding Key}"
IsGroupingEnabled="true"
android:ListView.IsFastScrollEnabled="true">
...
</ListView>
</StackLayout>
</ContentPage>
または、Fluent API を使用して C# から使用することもできます。
using Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific;
...
var listView = new Microsoft.Maui.Controls.ListView { IsGroupingEnabled = true, ItemTemplate = personDataTemplate };
listView.SetBinding(ItemsView<Cell>.ItemsSourceProperty, static (ListViewViewModel vm) => vm.GroupedEmployees); // .NET 9+ compiled binding
listView.GroupDisplayBinding = Binding.Create(static (Grouping<char, Person> g) => g.Key); // .NET 9+ compiled binding
listView.On<Microsoft.Maui.Controls.PlatformConfiguration.Android>().SetIsFastScrollEnabled(true);
ListView.On<Microsoft.Maui.Controls.PlatformConfiguration.Android>
メソッドは、このプラットフォーム固有の機能が Android 上でのみ実行されるように指定します。 ListView.SetIsFastScrollEnabled
メソッドは、Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific
名前空間にあり、ListView でデータを高速にスクロールできるようにするために使用されます。 さらに、高速スクロールが有効かどうかを返す IsFastScrollEnabled
メソッドを呼び出せば、SetIsFastScrollEnabled
メソッドを使用して高速スクロールを切り替えることができます。
listView.On<Microsoft.Maui.Controls.PlatformConfiguration.Android>().SetIsFastScrollEnabled(!listView.On<Microsoft.Maui.Controls.PlatformConfiguration.Android>().IsFastScrollEnabled());
その結果、ListView 内でデータの高速スクロールを有効にできるため、スクロール サムのサイズが変更されます。
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET MAUI