0

我正在尝试滚动以在Column条目数可能超过窗口高度的情况下工作。

我目前正在使用 Compose 1.1.0-rc03,目前我只是想让它在桌面上运行。

我将问题简化为:

@Composable
fun App() {
    val optionsScrollState = rememberScrollState()

    Row(modifier = Modifier.fillMaxSize()) {
        // Left column
        Column(
            modifier = Modifier
                .scrollable(optionsScrollState, Orientation.Vertical)
                .width(240.dp)
                .fillMaxHeight()
        ) {
            (1..100).forEach { i -> Text("Row $i") }
        }
    }
}

但这不会滚动,或者至少不会滚动鼠标滚轮。也许还有另一种滚动方式对我来说不是很明显。

我该如何进行这项工作?

上的文档scrollable说我可能必须自己管理状态。那么使用rememberScrollState()还不够吗?

我发现了一些关于禁用列滚动的现有问题,但他们总是在谈论LazyColumn我在这里没有使用的问题。

4

1 回答 1

1

您使用了错误的修饰符。从文档

scrollable修饰符与滚动修饰符的不同之处在于,可滚动可检测滚动手势,但不会偏移其内容。

如果您对Modifier.scrollable应该如何使用感兴趣,可以在同一文档章节中找到示例。


您可以Modifier.verticalScroll改用它,这将为您提供预期的行为。

还可以考虑切换到LazyColumn,它已经内置滚动以及延迟单元格加载。

于 2022-02-04T03:37:01.980 回答