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

Класс ScrollState

Класс ScrollState описывает прокрутку содержимого, к которому применили verticalScroll или horizontalScroll. Объект получают из rememberScrollState. Свойство value - текущее смещение в пикселях, maxValue - максимально возможное. Suspend-методы scrollTo и animateScrollTo задают смещение программно.

Синтаксис

val scrollState = rememberScrollState() Modifier.verticalScroll(scrollState)

Методы

Метод Описание
scrollTo Suspend-метод, который сразу ставит смещение value.
animateScrollTo Suspend-метод, который плавно меняет value.

Пример

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

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Column import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Modifier import kotlinx.coroutines.launch class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val scrollState = rememberScrollState() val scope = rememberCoroutineScope() Column { Button( onClick = { scope.launch { scrollState.animateScrollTo(scrollState.maxValue) } }, ) { Text(text = "12345") } Column( modifier = Modifier.verticalScroll(scrollState), ) { repeat(20) { Text(text = "abcde") } Text(text = "12345") } } } } }

На экране после нажатия прокрутка доедет до последней строки "12345".

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

  • функция rememberScrollState,
    которая создаёт ScrollState
  • метод verticalScroll,
    которому передают ScrollState
  • класс LazyListState,
    состояние ленивого списка
  • функция Column,
    которую часто прокручивают через verticalScroll
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить