I can't find any doc on the matter, is there something similar to a CollapsingToolbar in Compose?

All I found was a mention of it here, but nothing on how to set it up

推荐答案

我发现了一个由萨米尔·巴斯内特(来自Kotlin slack 频道)创建的解决方案,它对我很有用,我希望它能帮助其他人……

@Composable
fun CollapsingEffectScreen() {
    val items = (1..100).map { "Item $it" }
    val lazyListState = rememberLazyListState()
    var scrolledY = 0f
    var previousOffset = 0
    LazyColumn(
        Modifier.fillMaxSize(),
        lazyListState,
    ) {
        item {
            Image(
                painter = painterResource(id = R.drawable.recife),
                contentDescription = null,
                contentScale = ContentScale.FillWidth,
                modifier = Modifier
                    .graphicsLayer {
                        scrolledY += lazyListState.firstVisibleItemScrollOffset - previousOffset
                        translationY = scrolledY * 0.5f
                        previousOffset = lazyListState.firstVisibleItemScrollOffset
                    }
                    .height(240.dp)
                    .fillMaxWidth()
            )
        }
        items(items) {
            Text(
                text = it,
                Modifier
                    .background(Color.White)
                    .fillMaxWidth()
                    .padding(8.dp)
            )
        }
    }
}

结果如下:

enter image description here

Kotlin相关问答推荐

如何在Kotlin中反射多个对象以查找特定类型的属性

在Kotlin Jetpack中重用下拉菜单

用浮点数或十进制数给出错误答案的阶乘计算

为什么";";.equals(1)在柯特林语中是有效的,但";";=1是无效的?

可以从背景图像中点击图标吗?

相当于roomdb中的DateTime Bigint列的是什么

为什么不';Kotlin是否在数据类构造函数中隐式分配null值可为null的字段?

将 java Optional 转换为 Kotlin Arrow Option

Kotlin 启动与启动(Dispatchers.Default)

如何从 var list 或可变列表中获取列表流

为什么多线程不会使执行更快

Kotlin 条件格式字符串

嵌套数组 indexOf()

从字符串列表构建字符串

Anko 中的水平线性布局

RecyclerView SnapHelper无法显示第一个/最后一个元素

Lint 错误:可疑的相等判断:在 Object DiffUtilEquals 中未实现 equals()

如何在Kotlin中将字符串转换为InputStream?

Kotlin Flow 收集后无法执行代码

访问Kotlin中的属性委托