小编Jfr*_*reu的帖子

Jetpack Compose 中的粘性标题(如 Android 联系人)

我没有找到任何方法可以将 StickyHeader 与 LazyColumn 中的项目放在同一行:

内联粘性标题

因此,我使用 Box 将字母及其背景放在 LazyColumn 顶部,并使用 LazyListState 将其放在正确的位置:

@Preview
@Composable
fun InlineStickyList() {
    val unsorted = listOf(...) // Pair("FirstName","LastName")
    val data = unsorted.sortedBy { it.second[0] }
    val groups = data.groupBy { it.second[0] }

    @Composable
    fun Person(pair: Pair<String, String>, showLetter: Boolean) {
        Row(
            modifier = Modifier
                .fillMaxWidth()
                .background(Color.White),
            verticalAlignment = Alignment.CenterVertically
        ) {
            Text(
                "${pair.second[0]}",
                modifier = Modifier
                    .padding(10.dp)
                    .alpha(if (showLetter) 1f else 0f),
                fontSize = 20.sp
            )
            Text("${pair.first} ${pair.second}")
        }
    }

    val state = rememberLazyListState()
    Box(modifier …
Run Code Online (Sandbox Code Playgroud)

header sticky android-jetpack-compose lazycolumn

7
推荐指数
1
解决办法
3618
查看次数