Вложенная прокрутка в написании Android

У меня есть столбец, и внутри столбца есть разделитель определенного размера и LazyColumn. Сейчас происходит следующее: когда я хочу прокрутить, First LazyColumn начинает прокручиваться, а когда он достигает конца, столбец начинает прокручиваться до конца.

Я хочу, чтобы сначала столбец начал прокручиваться, а когда он достигнет конца, My LazyColumn начал прокручиваться.

Это мой пример кода

       Column(
            modifier = Modifier
                .fillMaxHeight()
                .verticalScroll(scrollState),
        ) {
            Spacer(modifier = Modifier.height(300.dp))
            LazyColumn(
                modifier = Modifier
                    .height(LocalConfiguration.current.screenHeightDp.dp)
                    .fillMaxSize(),
            ) {
                items(50) { item ->
                    Text(modifier = Modifier.height(40.dp), text = "ITEM NUMBER: $item")
                }
            }
        }

2 ответа

Добавьте код Spacer внутри LazyColumn как один из элементов и удалите Column.

      LazyColumn(modifier = Modifier.fillMaxSize()) {
            item {
                Spacer(modifier = Modifier.height(300.dp))
            }
            items(50) { item ->
                Text(modifier = Modifier.height(40.dp), text = "ITEM NUMBER: $item")
            }
        }

Я не уверен, какова ваша конечная цель, собираетесь ли вы иметь какой-то дополнительный контент в столбце или нет, но для этого конкретного примера я не думаю, что вложенная прокрутка нужна :)

Код ниже должен вести себя так, как вы хотели. Он будет прокручивать содержимое, включая разделитель, который теперь заменен наcontent padding. Надеюсь это поможет! :)

      LazyColumn(
    modifier = Modifier.fillMaxSize(),
    contentPadding = PaddingValues(top = 300.dp),
) {
    items(50) { item ->
        Text(
            modifier = Modifier.height(40.dp),
            text = "ITEM NUMBER: $item"
        )
    }
}