Функция rememberScrollState
Функция rememberScrollState возвращает
ScrollState
и сохраняет его между перерисовками.
Начальное смещение задают параметром initial
в пикселях.
Объект передают в
verticalScroll
или
horizontalScroll.
Синтаксис
val scrollState = rememberScrollState()
Параметры
| Параметр | Описание |
|---|---|
initial |
Смещение прокрутки при первом показе.
По умолчанию 0.
|
Пример
Давайте прокрутим Column через rememberScrollState:
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.ui.Modifier
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val scrollState = rememberScrollState()
Column(
modifier = Modifier.verticalScroll(scrollState),
) {
Text(text = "abcde")
Text(text = "12345")
}
}
}
}
На экране две строки в столбце, если текста станет больше высоты экрана, его можно листать.
Пример
Давайте откроем экран уже с начальным смещением:
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.ui.Modifier
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val scrollState = rememberScrollState(initial = 200)
Column(
modifier = Modifier.verticalScroll(scrollState),
) {
repeat(10) { Text(text = "abcde") }
Text(text = "12345")
}
}
}
}
На экране столбец сразу будет сдвинут вниз
на 200 пикселей от начала.
Смотрите также
-
класс
ScrollState,
который возвращает rememberScrollState -
функция
rememberLazyListState,
состояние для LazyColumn -
метод
horizontalScroll,
горизонтальный аналог verticalScroll -
метод
animateScrollTo,
который меняет смещение с анимацией