Android 在Jetpack compose中生成一行旋转文本

Android 在Jetpack compose中生成一行旋转文本,android,android-jetpack-compose,Android,Android Jetpack Compose,我想制作一个旋转-90度的行,将文本组合成如下内容: 但是,此代码(复制案例): 预览(showBackground=true,backgroundColor=0xFFFFFF) @组合的 有趣的预览\u行\u带\u旋转的\u文本(){ 划船{ 正文( text=“文本”, 修饰语=修饰语 .填充(2.dp) .旋转(-90f), maxLines=1, ) 正文( text=“稍微长一点的文本”, 修饰语=修饰语 .填充(2.dp) .旋转(-90f), maxLines=1, ) 正文(

我想制作一个旋转-90度的
,将
文本
组合成如下内容:

但是,此代码(复制案例):

预览(showBackground=true,backgroundColor=0xFFFFFF) @组合的 有趣的预览\u行\u带\u旋转的\u文本(){ 划船{ 正文( text=“文本”, 修饰语=修饰语 .填充(2.dp) .旋转(-90f), maxLines=1, ) 正文( text=“稍微长一点的文本”, 修饰语=修饰语 .填充(2.dp) .旋转(-90f), maxLines=1, ) 正文( text=“比上一个长一点的文本”, 修饰语=修饰语 .填充(2.dp) .旋转(-90f), maxLines=1, ) } } 产生以下结果:

使用
文本
组合的旧宽度(非旋转文本的宽度)将它们依次放置


此问题的原因在哪里?

您可以尝试在
列中使用它,然后将
列旋转
-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
    )
}

您可以尝试在
列中使用它,然后通过
-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
    )
}