RecyclerView
RecyclerView は、コレクションを表示するためのビュー グループです。これは、ListView や GridView などの以前のビュー グループをより柔軟に置き換えるように設計されています。 このガイドでは、Xamarin.Android アプリケーションで RecyclerView を使用およびカスタマイズする方法について説明します。
RecyclerView
多くのアプリでは、同じ種類のコレクション (メッセージ、連絡先、画像、楽曲など) を表示する必要があります。多くの場合、このコレクションは大きすぎて画面に収まりません。そのため、このコレクションは、コレクション内のすべての項目をスムーズにスクロールできる小さなウィンドウに表示されます。
RecyclerView
は、リストまたはグリッド内の項目のコレクションを表示する Android ウィジェットで、ユーザーがコレクションをスクロールできるようにします。 次のスクリーンショットは、電子メールの受信トレイの内容を垂直スクロール リストに表示するために RecyclerView
を使用するアプリの例です。
RecyclerView
には次の 2 つの魅力的な特長があります。
これは柔軟なアーキテクチャを備え、好みのコンポーネントを接続することでその動作を変更できます。
項目ビューを再利用し、ビューの参照をキャッシュするために "ビュー ホルダー" を使用する必要があるため、大規模なコレクションで効率的です。
このガイドでは、Xamarin.Android アプリケーションで RecyclerView
を使用する方法について説明します。また、Xamarin.Android プロジェクトに RecyclerView
パッケージを追加する方法と、一般的なアプリケーションで RecyclerView
がどのように機能するかについて説明します。 実際のコード例が提供されており、アプリケーションに RecyclerView
を統合する方法、項目ビューのクリックを実装する方法、基になるデータが変更されたときに RecyclerView
を更新する方法が示されています。 このガイドでは、Xamarin.Android 開発についてよく理解していることを前提としています。
要件
多くの場合、RecyclerView
は Android 5.0 Lollipop に関連付けられていますが、これはサポート ライブラリとして提供されており、RecyclerView
は API レベル 7 (Android 2.1) 以降を対象とするアプリで動作します。 Xamarin ベースのアプリケーションで RecyclerView
を使用するには、次のものが必要です。
Xamarin.Android – Visual Studio または Visual Studio for Mac に Xamarin.Android 4.20 以降をインストールして、構成する必要があります。
アプリ プロジェクトには、Xamarin.Android.Support.v7.RecyclerView パッケージが含まれている必要があります。 NuGet パッケージのインストールについて詳しくは、チュートリアル: プロジェクトに NuGet を含めるのページをご覧ください。
概要
RecyclerView
は、Android の ListView
および GridView
ウィジェットの代わりと考えることができます。 RecyclerView
は以前のものと同様に、大規模なデータ セットを小さなウィンドウに表示するように設計されていますが、RecyclerView
はより多くのレイアウト オプションを提供し、大きなコレクションを表示できるようにさらに最適化されています。 ListView
に慣れている場合、ListView
と RecyclerView
には以下のようないくつかの重要な違いがあります。
RecyclerView
を使用する方が少し複雑です。RecyclerView
を使用するには、ListView
と比べてより多くのコードを書く必要があります。RecyclerView
は定義済みのアダプターを提供していないため、データ ソースにアクセスするアダプター コードを自分で実装する必要があります。 ただし、Android には、ListView
とGridView
で動作する定義済みのアダプターがいくつか含まれています。RecyclerView
は、ユーザーが項目をタップしたときに項目クリック イベントを提供しません。代わりに、項目クリック イベントはヘルパー クラスによって処理されます。 これに対し、ListView
では項目クリック イベントが提供されます。RecyclerView
は、ビューをリサイクルし、ビュー ホルダー パターンを適用することでパフォーマンスを向上させ、不要なレイアウト リソース検索を排除します。ListView
では、ビュー ホルダー パターンの使用はプションです。RecyclerView
は、カスタマイズを容易にするモジュール型の設計に基づいています。 たとえば、アプリに大幅なコード変更を加えることなく、別のレイアウト ポリシーを組み込むことができます。 これに対し、ListView
は比較的モノリシックな構造です。RecyclerView
には、項目の追加と削除の組み込みのアニメーションが含まれています。ListView
のアニメーションには、アプリ開発者による追加の作業が必要になります。
セクション
RecyclerView のパーツと機能
このトピックでは、RecyclerView
をサポートするためのヘルパー クラスとして Adapter
、LayoutManager
、ViewHolder
がどのように連携するかについて説明します。
ここでは、これらの各ヘルパー クラスの概要と、それらをアプリで使用する方法について説明します。
基本的な RecyclerView の例
このトピックでは、「RecyclerView のパーツと機能」で提供される情報に基づき、さまざまな RecyclerView
要素を実装して実際の写真閲覧アプリを構築する方法を示す実際のコード例を提供します。
RecyclerView の例を拡張する
このトピックでは、「基本的な RecyclerView の例」に示されているアプリの例にさらにコードを追加して、項目クリック イベントを処理する方法と、基になるデータ ソースが変更されたときに RecyclerView
を更新する方法について説明します。
まとめ
このガイドでは、Android の RecyclerView
ウィジェットについて紹介しました。Xamarin.Android プロジェクトに RecyclerView
サポート ライブラリを追加する方法、RecyclerView
がビューをリサイクルする方法、効率化のためにビュー ホルダー パターンを適用する方法、RecyclerView
を構成するさまざまなヘルパー クラスがコレクションを表示するためにどのように連携するかについて説明しました。 RecyclerView
がどのようにアプリケーションに統合されるかを示すコード例を提供しました。また、異なるレイアウト マネージャーに接続することで RecyclerView
のレイアウト ポリシーを調整する方法を説明し、項目クリック イベントを処理して、データ ソースの変更を RecyclerView
に通知する方法について説明しました。
RecyclerView
の詳細については、RecyclerView クラスのリファレンスを参照してください。