跳转到内容

Text

Text 组件是 Miuix 中的基础文本组件,用于显示文字内容。支持自定义各种文本样式、对齐方式和装饰效果。

引入

kotlin
import top.yukonga.miuix.kmp.basic.Text

基本用法

最简单的文本展示:

kotlin
Text("这是一段基本文本")

文本样式

Miuix 提供了多种预定义的文本样式:

kotlin
Text(
    text = "标题文本",
    style = MiuixTheme.textStyles.headline1
)

Text(
    text = "小标题文本",
    style = MiuixTheme.textStyles.subtitle
)
Text(
    text = "摘要文本",
    style = MiuixTheme.textStyles.body2
)

Text(
    text = "正文文本",
    style = MiuixTheme.textStyles.main
)

文本颜色

kotlin
Text(
    text = "默认颜色文本",
    color = MiuixTheme.colorScheme.onBackground
)

Text(
    text = "主题色文本",
    color = MiuixTheme.colorScheme.primary
)

Text(
    text = "次要文本",
    color = MiuixTheme.colorScheme.onSurfaceContainerVariant
)

属性

属性名类型说明默认值是否必须
textString / AnnotatedString要显示的文本内容-
modifierModifier应用于文本的修饰符Modifier
colorColor文本颜色MiuixTheme.colorScheme.onBackground
fontSizeTextUnit文本字号TextUnit.Unspecified
fontStyleFontStyle?文本字体风格(如斜体)null
fontWeightFontWeight?文本字重null
fontFamilyFontFamily?文本字体族null
letterSpacingTextUnit字母间距TextUnit.Unspecified
textDecorationTextDecoration?文本装饰(如下划线)null
textAlignTextAlign?文本对齐方式null
lineHeightTextUnit行高TextUnit.Unspecified
overflowTextOverflow文本溢出处理方式TextOverflow.Clip
softWrapBoolean是否自动换行true
maxLinesInt最大行数Int.MAX_VALUE
minLinesInt最小行数1
onTextLayout(TextLayoutResult) -> Unit文本布局完成后的回调null
styleTextStyle文本样式MiuixTheme.textStyles.main
inlineContentMap<String, InlineTextContent>用于插入内联可组合项的映射mapOf()

进阶用法

多行文本截断

kotlin
Text(
    text = "这是一段很长很长的文本,当空间不足时会被截断并显示省略号,这在显示长内容摘要时很有用。",
    maxLines = 2,
    overflow = TextOverflow.Ellipsis
)

文本装饰

kotlin
Text(
    text = "带下划线的文本",
    textDecoration = TextDecoration.Underline
)

Text(
    text = "带删除线的文本",
    textDecoration = TextDecoration.LineThrough
)

富文本混排

kotlin
Text(
    buildAnnotatedString {
        withStyle(style = SpanStyle(color = MiuixTheme.colorScheme.primary)) {
            append("Miuix ")
        }
        withStyle(style = SpanStyle(fontWeight = FontWeight.Bold)) {
            append("UI 库")
        }
        append(",这是一段富文本")
    }
)

基于 Apache-2.0 许可发布