Androidアプリ開発でよく利用されるリスト作成時のViewにRecyclerViewがあります。
RecyclerViewの基本的な使い方をまとめます。
Android開発の基本を学びたければ書籍がオススメです!
【超初学者向け】たった1日で基本が身に付く! Androidアプリ開発超入門
Android Studioの使い方をはじめとした開発の基本が学べます。
【初学者向け】基礎&応用力をしっかり育成!Androidアプリ開発の教科書 第3版 Kotlin対応
さまざまなアプリを実際に作成することで実践力を養えます。
RecyclerViewの実装方法は大きく2種類
- ネイティブ
- Groupie(ライブラリ)の使用
RecyclerViewは、Listを画面に表示させるときに使用します。Viewを使いまわす、かつ、表示されるときに生成されるので動作のカタツキが少ないです。
基本的な実装方法は、
- RecyclerViewをレイアウトファイルに配置
- RecyclerViewの1つのItemとして表示したいViewのレイアウトファイルを作成する
- RecyclerViewに対するAdapter(データ管理、Viewの作成)クラスを作成する
- RecyclerViewに対するViewHolder(RecyclerViewの1つ1つのItemのViewを生成する)クラスを作成する
- RecyclerViewをActivity(Fragment)から参照し、adapterに3で作成したadapterをセットする。layoutManagerをセットする
RecyclerViewの使用例
- 2行のリストを作成したい
LayoutManagerにGridLayoutMangaerを使用します。
Spanに行数を指定します。2行の場合は2を指定します。
- 複数種類のレイアウトをリスト内に表示させたい
ViewTypeで条件分岐させる。
getItemViewType()をAdapterクラスでoverrideし、onCreateViewHolderに渡すViewTypeを返すようにします。
- リストに境界線を表示させたい
RecyclerViewインスタンスで
addItemDecoration(DividerItemDecoration(context, DividerItemDecoration.VERTICAL))を呼びます。
- リストのItem間にマージンを設けたい
ItemDecorationクラスを継承した自作のDecorationクラスを作成し、getItemOffsets()をoverrideすることで上下左右のマージンを指定します。
ただし、マージンの単位はpxなので注意が必要です。
ListViewとの比較
RecyclerViewはListViewよりもより自由なレイアウトを作成できる特徴がある一方で、ListViewに劣っている点もあります。
- 区切り線(境界線)は自前で準備しないといけない
- タップ時のリスナが準備されていない
ListViewにはタップ時のリスナ用にOnItemClickListener()
とsetOnItemClickListener()
が準備されています。