Compose for Desktop LazyRow/LazyColumn 鼠标单击不滚动
Compose for Desktop LazyRow/LazyColumn not scrolling with mouse click
出于某种原因 LazyColumn
s 不使用鼠标单击和移动手势滚动。到目前为止,它只适用于鼠标滚轮。对于 LazyRow
s,也无法使用鼠标滚轮滚动。 lazy row 似乎对 Compose for desktop 没用。
是否可以在 LazyRow
和 LazyColum
上启用点击和移动手势。如果不是,是否至少可以使用鼠标滚轮滚动 LazyRow
?
我使用这个最小的可重现示例来测试滚动
@Composable
@Preview
fun App() {
var text by remember { mutableStateOf("Hello, World!") }
MaterialTheme {
LazyRow(modifier = Modifier.fillMaxSize()) {
repeat(100) {
item {
Text("Test Test Test Test $it ")
}
}
}
}
}
fun main() = application {
Window(onCloseRequest = ::exitApplication) {
App()
}
}
这是预期的行为。
所有可滚动组件(包括 LazyColumn
)(目前)仅适用于桌面上的鼠标滚轮滚动事件。
可滚动组件不应响应鼠标 drag/move 事件.
这是一个基本示例,说明如何向组件添加拖动支持:
val scrollState = rememberLazyListState()
val coroutineScope = rememberCoroutineScope()
LazyRow(
state = scrollState,
modifier = Modifier
.draggable(
orientation = Orientation.Horizontal,
state = rememberDraggableState { delta ->
coroutineScope.launch {
scrollState.scrollBy(-delta)
}
},
)
) {
items(100) {
Text("Test Test Test Test $it")
}
}
出于某种原因 LazyColumn
s 不使用鼠标单击和移动手势滚动。到目前为止,它只适用于鼠标滚轮。对于 LazyRow
s,也无法使用鼠标滚轮滚动。 lazy row 似乎对 Compose for desktop 没用。
是否可以在 LazyRow
和 LazyColum
上启用点击和移动手势。如果不是,是否至少可以使用鼠标滚轮滚动 LazyRow
?
我使用这个最小的可重现示例来测试滚动
@Composable
@Preview
fun App() {
var text by remember { mutableStateOf("Hello, World!") }
MaterialTheme {
LazyRow(modifier = Modifier.fillMaxSize()) {
repeat(100) {
item {
Text("Test Test Test Test $it ")
}
}
}
}
}
fun main() = application {
Window(onCloseRequest = ::exitApplication) {
App()
}
}
这是预期的行为。
所有可滚动组件(包括 LazyColumn
)(目前)仅适用于桌面上的鼠标滚轮滚动事件。
可滚动组件不应响应鼠标 drag/move 事件.
这是一个基本示例,说明如何向组件添加拖动支持:
val scrollState = rememberLazyListState()
val coroutineScope = rememberCoroutineScope()
LazyRow(
state = scrollState,
modifier = Modifier
.draggable(
orientation = Orientation.Horizontal,
state = rememberDraggableState { delta ->
coroutineScope.launch {
scrollState.scrollBy(-delta)
}
},
)
) {
items(100) {
Text("Test Test Test Test $it")
}
}