Impossibile impostare Custom Drawable per DividerItemDecoration per RecyclerView

Aug 24 2020

Ho una RecyclerViewvisualizzazione degli elementi in orizzontale e voglio aggiungere la spaziatura tra ogni elemento (ma non all'inizio o alla fine). Ho trovato questo e ho anche guardato l'esempio dai documenti ufficiali e anche se ho dichiarato la variabile usando var ottengo il seguente errore:

Ho configurato la mia vista riciclatore come segue:

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

Si compila e viene eseguito quando rimuovo la riga in cui ho impostato il mio disegnabile personalizzato. Perché ricevo questo errore e come si imposta un disegnabile personalizzato?

Risposte

GabrieleMariotti Aug 24 2020 at 12:46

Succede perché in DividerItemDecoration

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

Significa che il metodo setter accetta un Drawablepo 'di tempo il getter restituisce un file Drawable?. Dal momento che non corrispondono devi usare direttamente il setter:

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

Come sottolineato da CommonsWare, ha funzionato dopo essere passato divider.drawable = drawableResourcea divider.setDrawable(drawableResource).