Xamarin.Forms ListView
ListView
は、データのリスト、特にスクロールが必要な長いリストを表示するためのビューです。
重要
CollectionView
は、さまざまなレイアウト仕様を使用してデータを一覧表示するためのビューです。 これは、ListView
に代わる、より柔軟でパフォーマンスの高い選択肢を提供することを目的としています。 詳細は、「Xamarin.Forms CollectionView」を参照してください。
ユース ケース
ListView
コントロールは、スクロール可能なデータ リストを表示するあらゆる状況で使用できます。 ListView
クラスは、コンテキスト アクションとデータ バインディングをサポートします。
ListView
コントロールを TableView
コントロールと混同しないでください。 定義済みのオプションを XAML で指定できるため、オプションまたはデータのバインドされていないリストがある場合は常に、TableView
コントロールの方が適切です。 たとえば、ほとんど事前定義されているオプション セットがある iOS 設定アプリでは、ListView
よりも TableView
を使用する方が適しています。
ListView
クラスでは、XAML でのリスト項目の定義はサポートされていません。リスト内の項目を 定義するには、ItemsSource
プロパティ、または ItemTemplate
によるデータ バインディングを使用する必要があります。
ListView
は、1 つのデータ型で構成されるコレクションに最適です。 この要件があるのは、リスト内の行ごとに 1 つのセルの種類しか使用できないためです。 TableView
コントロールでは、複数のセルの種類をサポートできるため、複数のデータ型を表示する必要がある場合に適したオプションです。
ListView
インスタンスへのデータのバインディングについて詳しくは、「ListView データ ソース」を参照してください。
コンポーネント
ListView
コントロールには、各プラットフォームのネイティブ機能の実行に使用できる複数のコンポーネントがあります。 これらのコンポーネントは、次のセクションで定義されます。
ヘッダーとフッター
ヘッダーとフッターのコンポーネントは、リストのデータとは別に、リストの先頭と末尾に表示されます。 ヘッダーとフッターは、ListView のデータ ソースとは別のデータ ソースにバインドできます。
グループ
より簡単に移動できるように、ListView
内のデータをグループ化できます。 グループは通常、データ バインドされます。 次のスクリーンショットは、データがグループ化されている ListView
を示しています。
セル
ListView
内のデータ項目はセルと呼ばれます。 各セルは、1 行のデータに対応します。 選択対象となる組み込みセルがあるか、または独自のカスタム セルを定義することができます。 組み込みセルとカスタム セルの両方を、XAML またはコードで使用または定義できます。
TextCell
やImageCell
などの組み込みセルは、ネイティブ コントロールに対応し、特に高パフォーマンスです。- カスタム セルは、複雑なデータを表示するために使用されます。 たとえば、カスタム セルを使用して、アルバムとアーティストを含む曲の一覧を表示できます。
次のスクリーンショットは、ImageCell 項目を含む ListView
を示します。
ListView
におけるセルのカスタマイズの詳細については、「ListView セルの外観をカスタマイズする」を参照してください。
機能
ListView
クラスでは、複数の対話スタイルがサポートされます。
- プルして更新では、ユーザーが
ListView
をプルダウンして内容を更新できるようにします。 - コンテキスト アクションでは、開発者が個々のリスト項目でカスタム アクションを指定できるようにします。 たとえば、iOS に Swipe-to-Action を実装し、Android にロングタップ アクションを実装できます。
- 選択では、開発者がリスト項目の選択および選択解除イベントに機能をアタッチできるようにします。
次のスクリーンショットは、コンテキスト アクションを含む ListView
を示しています。
ListView
の対話機能の詳細については、ListView を使用したアクションと対話機能に関するページを参照してください。