PR

【Android】RecyclerViewの実装

Web開発
このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。

Androidアプリ開発でよく利用されるリスト作成時のViewにRecyclerViewがあります。

RecyclerViewの基本的な使い方をまとめます。

RecyclerViewの実装方法は大きく2種類

  • ネイティブ
RecyclerView で動的リストを作成する  |  Android デベロッパー  |  Android Developers
  • Groupie(ライブラリ)の使用
RecyclerViewによるレイアウトを楽にするGroupieを1年使ってみて - Qiita
Groupie1年間Groupieをたくさん使ったので、その知見を書いておこうと思います。Groupieは簡単に複雑なRecyclerViewによる画面レイアウトを行うことができます。どう簡単…

RecyclerViewは、Listを画面に表示させるときに使用します。Viewを使いまわす、かつ、表示されるときに生成されるので動作のカタツキが少ないです。

基本的な実装方法は、

  1. RecyclerViewをレイアウトファイルに配置
  2. RecyclerViewの1つのItemとして表示したいViewのレイアウトファイルを作成する
  3. RecyclerViewに対するAdapter(データ管理、Viewの作成)クラスを作成する
  4. RecyclerViewに対するViewHolder(RecyclerViewの1つ1つのItemのViewを生成する)クラスを作成する
  5. 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に劣っている点もあります。

  1. 区切り線(境界線)は自前で準備しないといけない
  2. タップ時のリスナが準備されていない

ListViewにはタップ時のリスナ用にOnItemClickListener()setOnItemClickListener()が準備されています。

まずは無料体験・説明会に参加を♪【Winスクール】

タイトルとURLをコピーしました