android-jetpack-compose - 嵌套滚动列和 LazyList
问题描述
我需要将整列作为一个滚动组件。我不能item
直接使用,因为我需要使用aclassen/ComposeReorderable库进行拖放滚动。有任何想法吗?
val scrollState = rememberScrollState()
Column(
modifier = Modifier.verticalScroll(scrollState)
) {
LazyColumn(){
repeat(20) {
item {
Text(text = "Item: " + it)
}
}
}
Text(text = "Header")
LazyColumn(){
repeat(20) {
item {
Text(text = "Item: " + it)
}
}
}
}
我试过这个,但滚动感觉不自然,我不知道如何添加nestedScroll
非列表可组合项,如标题
val offset = remember { mutableStateOf(0f) }
val nestedScrollConnection = remember {
object : NestedScrollConnection {
override fun onPreScroll(available: Offset, source: NestedScrollSource): Offset {
offset.value = (offset.value + available.y).coerceIn(-200f, 0f)
return Offset.Zero
}
}
}
Column(
modifier = Modifier.offset(y = offset.value.dp)
) {
LazyColumn(
modifier = Modifier.nestedScroll(nestedScrollConnection)
){
repeat(20) {
item { Text(text = "Item: $it") }
}
}
Text(text = "Header")
LazyColumn(
modifier = Modifier.nestedScroll(nestedScrollConnection)
){
repeat(20) {
item { Text(text = "Item: $it") }
}
}
}
解决方案
推荐阅读
- c# - 为什么我的 Unity 挂在一个可能是真的 while 语句上?
- javascript - React useEffect 导致无限循环
- javascript - 修复列表项css之间的不均匀间距
- c - 为什么我的 do while 语句会这样工作?
- c# - 如何更改 FlowDocument 中查找文本框的前景色/背景色?
- git - 当每个人都添加到 CHANGELOG.md 文件时合并冲突
- excel - .msg 文件中的 VBA 提取日期
- selenium-webdriver - 如何在 docker-compose 中使用 selenium
- php - 使用 PHP 提高数据库的导出速度
- python - 在 Tkinter 中,如何在上一个屏幕上单击按钮时创建一个新窗口?