Kotlinを介してAndroidでViewBindingを使用したRecrutionerViewの使用
4469 ワード
RecyclerView Androidで最も使用されるライブラリの一つです.この記事では、ビューバインディングと組み合わせて使用する方法を示します.
必要な依存関係を以下に示します: ビューバインディング あなたのホストフラグメント/アクティビティに追加された RefererViewのアダプタークラスでホストフラグメント/アクティビティを展開するXMLレイアウト. 場合は、ビューバインディングのトピックに慣れていない場合は、私の記事をチェックアウトすることができます.
アダプターのクラスを作り、それを拡張しますRecyclerView.Adapter インスタンス化中のクラス.
これにより、1に拡張するカスタムViewHowageクラスを作成する必要がありますRecyclerView.ViewHolder そして、レイアウトファイルのルートを取得するために使用される引数として、レイアウトの束縛を取ります.
さて、アダプタの設定を完了するためにクラス関数をオーバーライドする必要があります.
オーバーライドする最初のメソッドは
依存
必要な依存関係を以下に示します:
build.gradle
モジュールのファイルKotlinを使用してAndroidでViewBindingを使用する
アユッシュグプタ・ Jan 28 ' 21・ 3分読む
#kotlin
#android
実装
アダプターのクラスを作り、それを拡張しますRecyclerView.Adapter インスタンス化中のクラス.
これにより、1に拡張するカスタムViewHowageクラスを作成する必要がありますRecyclerView.ViewHolder そして、レイアウトファイルのルートを取得するために使用される引数として、レイアウトの束縛を取ります.
class RVExample(val list: ArrayList<Example>) : RecyclerView.Adapter<RVExample.ViewHolder>() {
inner class ViewHolder(val binding: RVExampleBinding) : RecyclerView.ViewHolder(binding.root)
}
上の例のコードでは、リストをクラスコンストラクターとして受け入れています.このリストはタイプ1の複数の要素を持つことになっていますExample
これでtext
後で使用するキーとして.Notice how the inner class's constructor is of type
RVExampleBinding
. You need to make sure that you use the layout resource you created earlier to be consumed by the Adapter class.
さて、アダプタの設定を完了するためにクラス関数をオーバーライドする必要があります.
オーバーライドする最初のメソッドは
onCreateViewHolder
. この関数は、ViewHolder
上記のクラス.クラスコンストラクタとして必要なものを渡す必要がありますBinding
, レイアウトを展開しながらパスを使用します.override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
return ViewHolder(
RvExampleBinding.inflate(
LayoutInflater.from(parent.context),
parent,
false
)
)
}
オーバーライドする2つ目の方法はgetItemCount
. この関数は、アダプタークラスで引数として受け入れたリストのサイズを返します.override fun getItemCount(): Int {
return list.size
}
3番目と最後のメソッドをオーバーライドしますonBindViewHolder
. このメソッドでは、holder
結合を使用してGUIコンポーネントにアクセスする引数として受け入れられた変数.position
引数はリスト内の特定の位置にある要素にアクセスするのに役立ちます.override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.binding.tvExample.text = list[position].text
}
アダプタークラスはこちらRVExample.kt
以下のようになります.package dev.theimpulson.rvexample
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import dev.theimpulson.rvexample.databinding.RvExampleBinding
import dev.theimpulson.rvexample.Example
class RVExample(val list: ArrayList<Example>) : RecyclerView.Adapter<RVExample.ViewHolder>() {
inner class ViewHolder(val binding: RvExampleBinding) : RecyclerView.ViewHolder(binding.root)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
return ViewHolder(
RvExampleBinding.inflate(
LayoutInflater.from(parent.context),
parent,
false
)
)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.binding.tvExample.text = list[position].text
}
override fun getItemCount(): Int {
return list.size
}
}
そしてそれです.これでビューバインディングを使用して再利用ErrorViewビューを使用し、ビューバインディングによって提供されるnullとタイプの安全性を得ることができます.Reference
この問題について(Kotlinを介してAndroidでViewBindingを使用したRecrutionerViewの使用), 我々は、より多くの情報をここで見つけました https://dev.to/theimpulson/using-recyclerview-with-viewbinding-in-android-via-kotlin-1hglテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol