jetpack compose 中的 textAllCaps

Jee*_*eva 38 android-jetpack-compose

如何实现与textAllCapsJetpack Compose 中相同的效果,我知道我可以对toUpperCase字符串本身使用方法将字符串转换为大写。但我想知道是否有一个属性可以添加到可Text组合项中以直观地将文本转换为大写?

Text(
    text = stringResource(id = R.string.app_name).toUpperCase(Locale.current)
)
Run Code Online (Sandbox Code Playgroud)

Phi*_*hov 34

没有这样的属性,但你可以自己创建它:

@Composable
fun CapsText(
    text: String,
    modifier: Modifier = Modifier,
    color: Color = Color.Unspecified,
    fontSize: TextUnit = TextUnit.Unspecified,
    fontStyle: FontStyle? = null,
    fontWeight: FontWeight? = null,
    fontFamily: FontFamily? = null,
    letterSpacing: TextUnit = TextUnit.Unspecified,
    textDecoration: TextDecoration? = null,
    textAlign: TextAlign? = null,
    lineHeight: TextUnit = TextUnit.Unspecified,
    overflow: TextOverflow = TextOverflow.Clip,
    softWrap: Boolean = true,
    maxLines: Int = Int.MAX_VALUE,
    onTextLayout: (TextLayoutResult) -> Unit = {},
    style: TextStyle = LocalTextStyle.current
) {
    Text(
        text = text.uppercase(),
        modifier = modifier,
        color = color,
        fontSize = fontSize,
        fontStyle = fontStyle,
        fontWeight = fontWeight,
        fontFamily = fontFamily,
        letterSpacing = letterSpacing,
        textDecoration = textDecoration,
        textAlign = textAlign,
        lineHeight = lineHeight,
        overflow = overflow,
        softWrap = softWrap,
        maxLines = maxLines,
        onTextLayout = onTextLayout,
        style = style,
    )
}
Run Code Online (Sandbox Code Playgroud)


小智 26

Text(
    text = stringResource(id = R.string.app_name).uppercase()
)
Run Code Online (Sandbox Code Playgroud)

您只需添加.uppercase()stringResource. 目前我正在使用 compose1.2.0-beta03版本。


小智 10

.toUpperCase(Locale.current) 已弃用并替换为 .uppercase() 示例用法如下:

Text(
    text = ("any").uppercase()
)
Run Code Online (Sandbox Code Playgroud)

这将在 UI 中呈现为 ANY


Ani*_*ban 5

你可以这样做:

keyboardOptions = KeyboardOptions(
            capitalization = KeyboardCapitalization.Characters
        )
Run Code Online (Sandbox Code Playgroud)