首页 > 解决方案 > 嵌套滚动列和 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") }
            }
        }
    }

标签: android-jetpack-compose

解决方案


推荐阅读