Какие способы есть для создания разделителей кроме ViewType

«Какие способы есть для создания разделителей кроме ViewType» — вопрос из категории UI и Views, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В RecyclerView можно использовать:

  1. ItemDecoration - добавляет отступы/разделители между элементами без изменения адаптера:
recyclerView.addItemDecoration(
    DividerItemDecoration(context, LinearLayoutManager.VERTICAL)
)
  1. Добавление пустого ViewHolder - в адаптере создаем специальный тип для разделителя:
override fun getItemViewType(position: Int): Int {
    return if (isDividerPosition(position)) TYPE_DIVIDER else TYPE_ITEM
}
  1. Margin/Padding в макете - простой способ через XML:
<View
    android:layout_height="1dp"
    android:background="#CCCCCC"
    android:layout_marginStart="16dp"
    android:layout_marginEnd="16dp"/>
  1. ShapeDrawable - кастомные разделители через XML drawable:
<shape xmlns:android="...">
    <size android:height="1dp"/>
    <solid android:color="#CCCCCC"/>
</shape>

ItemDecoration - наиболее производительный способ, так как не требует перерисовки элементов списка.