Android 在Jetpack compose中生成一行旋转文本
我想制作一个旋转-90度的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, ) 正文(
行
,将文本
组合成如下内容:
但是,此代码(复制案例):
预览(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
)
}