Compose中的Text组件

本文详细介绍了在Compose中如何使用Column和Row进行纵向和横向布局,以及如何设置Text的各种属性,如权重、字体、颜色、间距、装饰线、行高等,还涉及了长按复制、过滤复制和SelectionContainer的用法。

纵向布局为:Column

横向布局为:Row

设置内容

text属性设置内容。

设置权重

Modifier.weight(1.0f, true)权重设置,第一个参数 Float类型设置占比权重,第二个参数当为true时,元素将占据分配的整个宽度。

fontSize设置字体大小,FontFamily(Font(R.font.shizizuo))设置字体样式。

设置字体间距

letterSpacing 设置字体间距。

Text(
    //权重设置
    modifier = Modifier.weight(1.0f, true),
    text = "当前数量:$index",
    fontSize = 30.sp,
    //字体样式设置
    fontFamily = FontFamily(Font(R.font.shizizuo)),
    //字体颜色设置
    color = colorResource(id = R.color.purple_500),
    //设置字符间距
    letterSpacing = 5.sp
)

更多属性参考源码:

fun Text(
    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
)

设置下划线与删除线

TextDecoration.Underline给字体设置下划线,TextDecoration.LineThrough给字体设置删除线,extAlign.Center设置字体内容居中。

Text(
    //宽度全屏
    modifier = Modifier.fillMaxWidth(),
    text = "Hello world!",
    //下划线
    textDecoration = TextDecoration.Underline,
    //内容居中
    textAlign = TextAlign.Center
)

Text(
    modifier = Modifier.fillMaxWidth(),
    text = "Hello world!",
    //中划(删除/过时)线
    textDecoration = TextDecoration.LineThrough,
    //内容居中
    textAlign = TextAlign.Center
)

设置行高

lineHeight设置行高,fontSize设置字体大小,maxLines设置最大行,TextOverflow.Clip设置文本超出不显示,TextOverflow.Ellipsis设置超出文本省略号显示。

Text(
    "素胚勾勒出青花笔锋浓转淡",
    //行高
    lineHeight = 35.sp,
    //字符间距
    letterSpacing = 35.sp,
    //字体大小
    fontSize = 15.sp,
    //最大行
//    maxLines = 1,
    //剪切溢出的文本以固定其容器。
//    overflow = TextOverflow.Clip,
    //使用省略号表示文本已溢出。
//    overflow = TextOver
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

举儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值