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

Метод stickyHeader

Метод stickyHeader приёмника LazyListScope добавляет пункт-заголовок, который прилипает к краю списка, пока под ним идут пункты той же секции. Работает в LazyColumn и LazyRow. Содержимое задают в лямбде content.

Синтаксис

stickyHeader { Text("abcde") }

Параметры

Параметр Описание
content Лямбда с composable заголовка секции.
key Ключ заголовка для стабильной идентификации.
contentType Тип содержимого для переиспользования ячеек.

Пример

Давайте закрепим заголовок над длинным списком:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.material3.Text import androidx.compose.ui.Modifier import androidx.compose.foundation.background import androidx.compose.ui.graphics.Color class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val lines = List(20) { "12345" } LazyColumn { stickyHeader { Text( text = "abcde", modifier = Modifier.background(Color.LightGray), ) } items(lines) { line -> Text(text = line) } } } } }

На экране при прокрутке строка "abcde" останется сверху, пока видны пункты секции под ней.

Пример

Давайте сделаем две секции с разными заголовками:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { LazyColumn { stickyHeader(key = "a") { Text(text = "abcde") } item { Text(text = "12345") } stickyHeader(key = "b") { Text(text = "abcde") } item { Text(text = "12345") } } } } }

На экране при прокрутке активный заголовок секции будет сменять друг друга у верхнего края списка.

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

  • метод item,
    который добавляет обычный пункт без закрепления
  • функция LazyColumn,
    где stickyHeader работает по вертикали
  • метод items,
    который заполняет секцию данными
  • класс LazyListState,
    который хранит положение прокрутки
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить