Jetpack Compose — общие состояния прокрутки с помощью lazyrow и столбцовAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Jetpack Compose — общие состояния прокрутки с помощью lazyrow и столбцов

Сообщение Anonymous »


Изображение
Я могу настроить ленивые строки справа для вертикальной прокрутки, а ленивую колонку слева . Lazyrow будет вертикально прокручиваться индивидуально, но когда я пытаюсь заставить прокручиваться вместе только несколько lazyrow, он вообще не будет вертикально прокручиваться. почему он может сделать это по отдельности, а не все сразу?
Вот мой код:
import androidx.compose.foundation.background
import androidx.compose.foundation.gestures.detectHorizontalDragGestures
import androidx.compose.foundation.gestures.detectVerticalDragGestures
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.input.pointer.pointerInput
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.compose.ui.graphics.Color

@Composable
fun ScrollStateComposable() {
val verticalScrollState = rememberScrollState()
var horizontalScrollOffset by remember { mutableStateOf(0f) }
val itemCount = 20 // Number of items

Column(
modifier = Modifier
.verticalScroll(verticalScrollState)
.fillMaxSize()
) {
Row(modifier = Modifier.fillMaxWidth()) {
// Left side: Column
Column(modifier = Modifier.weight(1f)) {
for (index in 0 until itemCount) {
Text(
text = "Column Item $index",
fontSize = 20.sp,
modifier = Modifier
.fillMaxWidth()
.padding(8.dp)
.background(Color.LightGray)
.height(50.dp) // Ensure each item has a fixed height
)
}
}

// Right side: Rows inside a Column
Column(
modifier = Modifier
.weight(2f)
.pointerInput(Unit) {
detectHorizontalDragGestures { change, dragAmount ->
horizontalScrollOffset = (horizontalScrollOffset + dragAmount).coerceIn(-2000f, 0f)
change.consume()
}
}
) {
for (rowIndex in 0 until itemCount) {
Row(
modifier = Modifier
.fillMaxWidth()
.padding(8.dp)
.height(50.dp) // Ensure each row has the same height as the items in the left Column
.offset { IntOffset(horizontalScrollOffset.toInt(), 0) }
) {
for (itemIndex in 0 until 20) {
Text(
text = "Row $rowIndex, Item $itemIndex",
fontSize = 20.sp,
modifier = Modifier
.background(Color.LightGray)
.width(100.dp) // Ensure each item has a fixed width
.height(50.dp)
)
}
}
}
}
}
}
}

@Preview(showBackground = true)
@Composable
fun DefaultPreview() {
ScrollStateComposable()
}



Подробнее здесь: https://stackoverflow.com/questions/785 ... nd-columns
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Jetpack Compose: процент прокрутки LazyRow?
    Anonymous » » в форуме Android
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Отображение LazyRow ElevatedCards внизу карты GoogleMap в Jetpack Compose
    Anonymous » » в форуме Android
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Jetpack Compose: вложенный LazyColumn/LazyRow
    Anonymous » » в форуме Android
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Пользовательский липкий заголовок Jetpack Compose LazyRow
    Anonymous » » в форуме Android
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Пользовательский липкий заголовок Jetpack Compose LazyRow
    Anonymous » » в форуме Android
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»