RecyclerViewのDividerItemDecorationにカスタムDrawableを設定できません

Aug 24 2020

RecyclerViewアイテムを水平に表示していて、各アイテムの間に間隔を追加したい(ただし、開始または終了ではない)。私はこれを見つけ、公式ドキュメントの例も調べました。varを使用して変数を宣言したにもかかわらず、次のエラーが発生します。

リサイクラービューを次のように構成しました。

myRecyclerView.apply {
  layoutManager = myLayoutManager
  adapter = myAdapter(data)
  addItemDecoration(divider)
}

カスタムドローアブルを設定した行を削除すると、コンパイルされて実行されます。なぜこのエラーが発生するのですか?また、カスタムドローアブルをどのように設定しますか?

回答

GabrieleMariotti Aug 24 2020 at 12:46

それは DividerItemDecoration

public void setDrawable(@NonNull Drawable drawable) 
@Nullable public Drawable getDrawable() 

これは、setterメソッドがaDrawableを受け入れ、getterがを返すことを意味しDrawable?ます。それらが一致しないため、セッターを直接使用する必要があります。

divider.setDrawable(..)
RubekJoshi Aug 24 2020 at 04:57

CommonsWareが指摘しているように、に変更divider.drawable = drawableResourceすると機能しましたdivider.setDrawable(drawableResource)