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

Метод scrollTo

Метод scrollTo класса ScrollState задаёт новое значение value без анимации. Метод suspend, его вызывают внутри корутины. Состояние связано с verticalScroll или horizontalScroll.

Синтаксис

scrollState.scrollTo(500)

Параметры

Параметр Описание
value Новое смещение прокрутки в пикселях. Обычно от 0 до maxValue.

Пример

Давайте по кнопке прокрутим 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.scrollTo(800) } }, ) { Text(text = "12345") } Column( modifier = Modifier.verticalScroll(scrollState), ) { repeat(25) { Text(text = "abcde") } } } } } }

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

Пример

Давайте прокрутим к концу через maxValue:

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.Text import androidx.compose.runtime.LaunchedEffect import androidx.compose.ui.Modifier class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val scrollState = rememberScrollState() LaunchedEffect(scrollState.maxValue) { if (scrollState.maxValue > 0) { scrollState.scrollTo(scrollState.maxValue) } } Column( modifier = Modifier.verticalScroll(scrollState), ) { repeat(15) { Text(text = "abcde") } Text(text = "12345") } } } }

На экране после измерения высоты станет видна последняя строка "12345".

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

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