Класс 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