Android Kotlin基礎講座 07.1:RecyclerViewの基礎

まとめ

  • リストや格子状のデータを表示することはAndroidにおけるUIタスクの最も一般的なタスクの一つです。RecyclerViewは非常に大きなリストなどを表示する際にも効率的に表示できるようにデザインされています。
  • RecyclerViewはその時に画面上に表示されるアイテムのみを処理、描写します。
  • アイテムが画面外に出た時は、そのアイテムのビューは再利用されます。これはアイテムが次に画面に表示される新しいアイテムに充てられることを意味します。
  • ソフトウェア開発におけるAdapterパターンはオブジェクトが別のAPIと共に動作する手助けをする開発手法パターンの一つです。RecyclerViewはアプリのデータを表示できるように変換するためにアダプターを利用します。そうすることでアプリのデータの保存方法や処理方法に関する記述を変更する必要がなくなります。

データをRecyclerViewで表示するには、以下のものが必要です。

  • RecyclerView RecyclerViewのインスタンスを作成するには、レイアウトファイル内でRecyclerView要素を定義してください。
  • LayoutManager RecyclerViewはRecyclerView内のアイテムのレイアウトを格子状やリストのように構成させるために、LayoutManagerを使います。

レイアウトファイル中のRecycleView内で、レイアウトマネージャーにapp:layoutManager属性を設定します。(LinearLayoutManagerやGridLayoutManagerなど)

また、プログラムからRecyclerView用のLayoutManagerを設定することもできます。(これは後の記事で学習する技術になります)

  • それぞれのアイテム用のレイアウト XMLレイアウトファイル内でアイテムごとのレイアウトを作成します。
  • Adapter データを準備し、どのようにViewHolderで表示するかを決めるアダプターを作成します。アダプターとRecyclerViewを紐づけます。

RecyclerViewが動作しているとき、RecyclerViewは画面上にどのようにデータを表示するかを知るためにアダプターを使います。

アダプターは次のメソッドの実装を必要とします。

  1. アイテムの数を返すためのgetItemCount()
  2. リスト内のアイテム用のViewHolderを返すためのonCreateViewHolder()
  3. データをリスト内のアイテム用のビューに対応させるためのonBindViewHolder()
  • ViewHolder ViewHolderにはアイテムのレイアウトからアイテムを表示するためのビュー情報が含まれています。
  • アダプター内のonBindViewHolder()メソッドはデータをビューに対応させます。このメソッドは常にオーバーライドする必要があります。一般的には、onBindViewHolder()はアイテム用のレイアウトをインフレートし、データをレイアウト内のビューに入れます。
  • RecyclerViewはデータに関して何も知らないので、データに変更があったときにはAdapterがRecyclerViewに通知する必要があります。
    Adapterにデータの変更を通知するにはnotifyDataSetChanged()を使います。

お疲れさまでした。次の講座は 7.2 DiffUtilとRecycleViewのデータバインディングです。

おすすめ書籍

Kotlinの文法をまず学びたい!という方には以下の書籍がおすすめです。Kotlinは日本語書籍がまだ豊富とは言えない状況ですが、細かく解説されており、Kotlin入門者のかたでもつまずくことなく学習できると思います。

[itemlink post_id=”1743″]

実際にアプリを作りながら覚えていきたい!という方には以下もお勧めです。はじめに上の書籍で文法をさらっと学んでから取り組むのがお勧めです。

[itemlink post_id=”1745″]