Можно использовать GridLayoutManager.
Для изменения количества колонок в зависимости от ориентации экрана, следует:
GridLayoutManager с нужным количеством колонок и установить его для RecyclerView.Пример:
kotlin
Также можно определить количество колонок в ресурсах (dimens.xml) для разных ориентаций:
Создать res/values/dimens.xml:
xml
Создать res/values-land или res/values-sw600dp-land (для планшетов) dimens.xml:
xml
И затем использовать этот ресурс в коде:
kotlin
Этот подход более гибкий, так как позволяет легко изменять количество колонок, не меняя код.