Jetpack Compose - 如何在 ClickableText 中将文本居中

haa*_*art 18 android android-jetpack-compose android-compose-textfield

在 Jetpack Compose 中,使用 时Text,我们可以使用 使文本居中TextAlign

Text(
    text = "How many cars are in the garage",
    textAlign = TextAlign.Center
)
Run Code Online (Sandbox Code Playgroud)

但是,如果我们想要获取文本可组合项中的点击位置,我们可以使用ClickableText

ClickableText(
        text = AnnotatedString("Click Me"),
        onClick = { offset ->
            Log.d("ClickableText", "$offset -th character is clicked.")
        }
    )
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何将 ClickableText 中的文本居中?我可以使用重力,但这只会使组件居中,而不会使其内部的文本居中。

Gab*_*tti 36

textAlign您可以在参数中定义style

ClickableText(
    text = AnnotatedString("Click Me"),
    style = TextStyle(
        textAlign = TextAlign.Center),
    onClick = { offset ->

    }
)
Run Code Online (Sandbox Code Playgroud)

  • 如果有人有类似的情况,文本已经有样式,所以我像这样添加它:`style = MaterialTheme.typography.body2 + TextStyle(textAlign = TextAlign.Center)` (4认同)
  • @haart你可以使用`style.merge(TextStyle(textAlign = textAlign))` (4认同)
  • @haart您还可以使用“style.copy(textAlign = TextAlign.Center)”来覆盖textAlign属性。只是另一种选择。 (3认同)