Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
378 of 502 menu
◀ ▶

Класс GridLayoutManager

Класс GridLayoutManager наследует LinearLayoutManager и делит ширину на несколько колонок. Число колонок передают в конструктор. Объект ставят через setLayoutManager на RecyclerView.

Синтаксис

val manager = GridLayoutManager(context, spanCount = 2) recyclerView.layoutManager = manager

Пример

Давайте покажем пункты в две колонки:

import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val list = findViewById<RecyclerView>(R.id.list) list.layoutManager = GridLayoutManager(this, 2) list.adapter = LineAdapter( listOf("abcde", "12345", "abcde", "12345"), ) } }

На экране четыре пункта разойдутся по двум колонкам.

Пример

Давайте сменим spanCount на три колонки:

import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val list = findViewById<RecyclerView>(R.id.list) list.layoutManager = GridLayoutManager(this, 3) list.adapter = LineAdapter(listOf("abcde", "12345", "abcde")) } }

На экране пункты займут до трёх колонок в ряд.

Смотрите также

  • класс LinearLayoutManager,
    одна колонка или один ряд
  • класс RecyclerView,
    который рисует сетку через GridLayoutManager
  • класс Adapter,
    который отдаёт пункты для каждой ячейки
  • метод setLayoutManager,
    которым подключают GridLayoutManager
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить