android Jetpack组合反向色谱柱

ff29svar  于 2022-12-16  发布在  Android
关注(0)|答案(2)|浏览(123)

我需要创建一个逆序的列,这意味着给定的项目

Column {
    A
    B
    C
}

它提供:

C
B
A

我看到LazyColumn可以通过reverseLayout参数来实现这一点,但是我找不到常规Column的任何内容。有人知道如何实现这一点吗?我宁愿不必创建自定义布局。
我这样做的原因是我正在创建一个通用的模态组件,其中页脚按钮切换到一个小宽度的垂直列。根据我们的设计系统,积极的动作应该在列的顶部。通常,这是源代码顺序中的最后一项,因此我需要颠倒列表。

dtcbnfnu

dtcbnfnu1#

由于您使用的是列,因此可以简单地反转支持结构

val items = listOf("Apple", "Banana", "Cherry", "Dogs", "Eggs", "Fruits")

// or
// val items = remember { mutableStateListOf("Apple", "Banana", "Cherry", "Dogs", "Eggs", "Fruits") }

ReversedColumn(items = items.reversed()) // reversed

样本可组成

@Composable
fun ReversedColumn(items: List<String>) {

    Column(
        modifier = Modifier.verticalScroll(rememberScrollState())
    ) {

        items.forEach {
            Box(modifier = Modifier
                .height(80.dp)
                .fillMaxWidth()
                .border(BorderStroke(Dp.Hairline, Color.Gray)),
                contentAlignment = Alignment.Center
            ) {
                Text(
                    text = it
                )
            }
        }
    }
}

zzlelutf

zzlelutf2#

为什么不在传递给Column显示之前反转列表呢?根据Kotlin文档,可以这样做:

fun main() {
val list = (1..5).toList()

val reverse: List<Int> = list.reversed();
println(reverse)
}

我知道你的问题是问别的,但我想这可能是有帮助的。

相关问题