在 Jetpack compose 中制作一行旋转文本

Mah*_*alv 2 android android-jetpack-compose

我想要制作一个Row-90 度旋转的Text可组合项,以制作如下所示的内容:

一排旋转的文本

然而这段代码(重现案例):

@Preview(showBackground = true, backgroundColor = 0xffffffff)
@Composable
fun Preview_Row_With_Rotated_Text() {
    Row {
        Text(
            text = "A text",
            modifier = Modifier
                .padding(2.dp)
                .rotate(-90f),
            maxLines = 1,
        )
        Text(
            text = "A text which is a bit longer",
            modifier = Modifier
                .padding(2.dp)
                .rotate(-90f),
            maxLines = 1,
        )
        Text(
            text = "A text which is kinda longer than previous one",
            modifier = Modifier
                .padding(2.dp)
                .rotate(-90f),
            maxLines = 1,
        )
    }
}
Run Code Online (Sandbox Code Playgroud)

产生这个:

文本行的结果

使用可组合项Row的旧宽度Text(非旋转文本的宽度)将它们一个接一个地放置。

这个问题的原因在哪里呢?

Sau*_*rat 8

您可以尝试在 a 中使用它Column,然后通过以下方式旋转Column-90f

@Composable
fun Main() {
    Column(
        modifier = Modifier
            .width(200.dp)
            .rotate(-90f)
    ) {
        MyText(text = "Financial Advice")
        MyText(text = "Strategy and Marketing")
        MyText(text = "Information Technology")
    }
}

@Composable
fun MyText(text: String) {
    Text(
        text = text,
        modifier = Modifier
            .padding(4.dp)
            .fillMaxWidth()
            .background(MaterialTheme.colors.secondary)
            .padding(16.dp),
        textAlign = TextAlign.Center,
        maxLines = 1
    )
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述