Sobes.tech
Junior — Middle

Jaké metody lze použít k realizaci mezer mezi prvky v RecyclerView?

sobes.tech AI

Odpověď od AI

Pro vytvoření mezer mezi prvky v RecyclerView lze použít několik přístupů:

  1. ItemDecoration — nejflexibilnější a doporučený způsob. Vytvoříte třídu, která dědí od RecyclerView.ItemDecoration, a přepíšete metodu getItemOffsets(), abyste nastavili okraje kolem prvků.
class SpaceItemDecoration(private val space: Int) : RecyclerView.ItemDecoration() {
    override fun getItemOffsets(
        outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State
    ) {
        outRect.left = space
        outRect.right = space
        outRect.top = space
        outRect.bottom = space
    }
}

// Použití:
recyclerView.addItemDecoration(SpaceItemDecoration(16))
  1. Okraje v rozložení prvku — přidejte margin do XML rozložení prvku seznamu. Nevýhodou je, že okraje nejsou brány v úvahu při animacích a mohou být nerovnoměrné.

  2. Použití LayoutManager s okraji — například u GridLayoutManager lze nastavit okraje přes setSpanSizeLookup a další metody, ale je to méně univerzální.

Doporučuje se používat ItemDecoration pro kontrolu mezer, protože odděluje logiku rozvržení od vzhledu a přizpůsobí se různým LayoutManagerům.