[Android & Kotlin] RecyclerView の基本設定

RecyclerView は、ListView をさらに進化させて柔軟にしたものだそうです。
cellをドラッグ&ドロップさせたり追加・消去などに強みを発揮するようですが、ここでは簡単な基本設定を試してみます。

Android Studio
2021.2.1




RecyclerView

 
わかりやすい説明がGoogle Developerのリストとカードの作成にあります。最初にこのサンプルコードを元にして実際に動かしてみたいと思います。
 
1x1.trans - [Android & Kotlin] RecyclerView の基本設定


Ref: 図 1 RecyclerView ウィジェット
 
基本的にはListViewの進化形なので、ListViewがわかっていると理解しやすいです。
 
RecyclerView にはLayoutManagerはアイテムの位置調整を行い、 ビューの再利用(Recycle)する機能をもっています。
ListViewでもconvertViewを駆使すればできていた事でしたが、あえて記述しなくても良くなったということでしょう。

 

 

シンプルなサンプルコード

 
最初にRecyclerViewのライブラリーをbuild.gradleに追加しますが、どこかのバージョンから無くてもいいようです
ただ、ItemTouchHelperを使う場合では必要です

AndroidX:androidx.recyclerview:recyclerview:x.x.x

このバージョンはビルドツールのバージョンと合っていないとエラーになることもありますので、それぞれの環境で調整してください。
使っている環境に合わせる必要があります
 
build.gradle

 
以下、リストとカードの作成にあるサンプルコードを元に簡単なサンプルを作っててみます。

レイアウトでは、Recyckerview のタグを使います

 
RecyclerView オブジェクトのハンドルを取得してレイアウト マネージャーに接続し、アダプターにデータセットを渡します。
データセットとして20個の要素を持つ配列で設定してみます。

また、データセットも追加・削除・移動を前提にするためArrayListを使います。

MainActivity.kt

 
Adapterですが、別ファイルとして作成しました。
MyAdapter.kt

 

レイアウトのコード
activity_main.xml

cellとなる部分はListViewと同じように要素のレイアウトで作ります
my_text_view.xml

build.gradle

 

ここで注意するところは、layout_heightを限定しないとセルの高さがとんでもなく広がってしまうことがあります。
 
これでリストがスクロールするRecyclerViewの簡単な例ができたと思います。
 
1x1.trans - [Android & Kotlin] RecyclerView の基本設定


 
しかし、これは境界ラインも無いしカスタマイズで作り込む必要があります。
逆にいうとListViewのカスタマイズには限界があったところを柔軟に拡張したということでしょうか。
 

画像とテキストのサンプルコード

 
いままでの例を元に、画像と文字列を組み合わせた構成されるcellを作ってみたいと思います。

また双方向連結リストのLinkedListを使用すれば削除・追加などが早くなるようです。

画像を8枚程度適当に用意してdrawable-v24に入れます。

1x1.trans - [Android & Kotlin] RecyclerView の基本設定


 

MainActivity.kt

 
MyAdapter.kt

 

activity_main.xml

 
cellのレイアウト
my_text_view.xml

 
strings.xml

バージョンなどは自分の環境に合わせてください
build.gradle

これで実行してみると

1x1.trans - [Android & Kotlin] RecyclerView の基本設定

 
 
関連ページ:

 
Reference:
リストとカードの作成 | Android Developers
RecyclerView | Android Developers







アプリ開発が上達するお勧め

アプリ開発を始めたけどわからないところがあり、誰かに聞きたいけど周りにはそんな人はいない…あるいは、会社で働いていて日中そんなに時間をとれないなど、オンラインのプログラミングスクールがいいでしょう。

TECH ACADEMY
オンライン説明会



Code Camp
現役エンジニアによるオンラインプログラミングスクール【CodeCamp】


直接(ネットで)誰か分かる人に聞いた方が早く解決して、上達も早いと思います。



侍エンジニア塾
侍エンジニア塾 無料体験レッスン


とても簡単なことなのに本やネットの画像だけでは分かりにくいことはあります。実際に質問してピンポイントで教えてもらうと、なんだそんなこと、と言うのがけっこうあります。


シェアする

  • このエントリーをはてなブックマークに追加

フォローする