Compose | UI组件(二) | Text() 文本组件

文章目录

  • Text() 简介
    • Text() 参数说明
    • Text() 显示文字
    • fontSize 文字大小
    • textAlign 文字对齐方式
    • style 文字样式
    • fontFamily 文字字体
    • AnnotatedString 多样式文字
    • maxLines 设置文本单行显示
    • SelectionContainer 选中文字
  • 总结

Text() 简介

显示文字的组件

Text() 参数说明

@Composable
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,                       //控制文本是否换行,为false,则定位maxLines: Int = Int.MAX_VALUE,                  //文本最大几行onTextLayout: (TextLayoutResult) -> Unit = {},  //文本发生变化之后的回调函数style: TextStyle = LocalTextStyle.current       //文本风格配置(颜色,字体,行高)
)

Text() 显示文字

显示文字内容

//指定字符串
Text(text="Hello World")
//指定文字资源
Text(text= stringResource(id = R.string.app_hello_world))<string name="app_hello_world">HelloWorld</string>

fontSize 文字大小

Text(text="Hello World", fontSize = 16.sp)

textAlign 文字对齐方式

//左对齐 TextAlign.Start 或者 TextAlign.Left
Text(text="Hello World",modifier = Modifier.fillMaxWidth(),fontSize = 16.sp,textAlign = TextAlign.Start)
//居中对齐 TextAlign.Center
Text(text="Hello World",modifier = Modifier.fillMaxWidth(),fontSize = 16.sp,textAlign = TextAlign.Center)
//右对齐 TextAlign.End 或者 TextAlign.Right
Text(text="Hello World",modifier = Modifier.fillMaxWidth(),fontSize = 16.sp,textAlign = TextAlign.End)

注:如果是 Column 设置水平对齐方式,一定要加 modifier = Modifier.fillMaxWidth() 否则设置对齐无效

style 文字样式

设置文本样式

Text(text  = "HelloWorld\n"+"Goodbye World Boy",style = TextStyle(fontSize = 25.sp,                         //字体大小fontWeight = FontWeight.W900,             //字体粗细background = Color.Red,                   //背景lineHeight = 60.sp,                       //行高letterSpacing = 4.sp,                     //字体间距textDecoration = TextDecoration.Underline //下滑线)
)

fontFamily 文字字体

//fontFamily字体风格
Text(text = "Hello World", fontFamily = FontFamily.Monospace)
Text(text = "Hello World", fontFamily = FontFamily.Cursive)

AnnotatedString 多样式文字

AnnotatedString设置一段多样式的文字结合体

Text(text = buildAnnotatedString {withStyle(style = SpanStyle(fontSize = 24.sp)){append("我是")}withStyle(style = SpanStyle(fontSize = 30.sp,textDecoration = TextDecoration.Underline,fontWeight = FontWeight.W900,color = Color(0xFF59A869))){append("谭祖爱")}
})

注:buildAnnotatedString{…},以DSL方式构建一个 AnnotatedString 。其中 append 用来添加字符串文本,withStyleappend 的字符串指定文字段落样式

maxLines 设置文本单行显示

Text(text  = "HelloWorld "+"Goodbye World Boy",style = TextStyle(fontSize = 25.sp,             //字体大小fontWeight = FontWeight.W900, //字体粗细background = Color.Red,       //背景lineHeight = 60.sp,           //行高letterSpacing = 4.sp,         //字体间距textDecoration = TextDecoration.Underline //下滑线),maxLines = 1, //文本显示行数overflow = TextOverflow.Ellipsis //Ellipsis 处理一行文字过长,以...代替
)

SelectionContainer 选中文字

SelectionContainer {Text(text = "Hello World", fontFamily = FontFamily.Monospace)
}

注:Text 默认是没有长按选择,Compose 提供了专门长按选择组件 SelectionContainer 。这里可见 Compose 在组件设计上,将关注点分离原则做到了极致

总结

  1. Text() 显示文字的组件
  2. fontSize 设置文字大小
  3. textAlign 设置文字对齐方式
  4. style 设置文字的样式
  5. fontFamily 设置文字风格
  6. SelectionContainer 选中文字的组件
  7. maxLines 配合 overflow 等于 TextOverflow.Ellipsis 单行显示,文本过长,以 代替

想了解 Modifier 修饰符 用法,可移步:Compose | UI组件(一) | Modifier修饰符

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/648748.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

免 费 小程序商城搭建之b2b2c o2o 多商家入驻商城 直播带货商城 电子商务b2b2c o2o 多商家入驻商城 直播带货商城 电子商务

1. 涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买家平台&#xff08;H5/公众号、小程序、APP端&#xff08;IOS/Android&#xff09;、微服务平台&#xff08;业务服务&#xff09; 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis 3. 前端框架…

cg插画设计行业怎么样,如何学习插画设计

插画设计行业是一个充满创意和艺术性的行业&#xff0c;随着数字化时代的不断发展&#xff0c;cg插画的应用范围越来越广泛&#xff0c;市场需求也在逐年增长。以下是一些关于acg插画设计行业的现状和发展趋势&#xff1a; 市场需求不断增长&#xff1a;随着广告、媒体、影视、…

HCIA学习作业二

要求&#xff1a;基于192.168.1.0/24进行合理划分&#xff0c;要求全网通 [AR3]display ip interface brief [AR3]display ip routing-table [AR1]display ip interface brief [AR1]display ip routing-table [AR2]display ip interface brief [AR2]display ip routing-tab…

Element-plus修改样式

场景 通过样式穿透修改前端element组件样式。 实现 1.button按钮 ::v-deep .el-button { border-radius: 0; border: 0; background-color: rgba(0, 194, 255) !important; color: black; } 2.form表单 ::v-deep .el-form { text-align: left; .el-form-item { text-align: lef…

Hadoop3.x源码解析

文章目录 一、RPC通信原理解析1、概要2、代码demo 二、NameNode启动源码解析1、概述2、启动9870端口服务3、加载镜像文件和编辑日志4、初始化NN的RPC服务端5、NN启动资源检查6、NN对心跳超时判断7、安全模式 三、DataNode启动源码解析1、概述2、初始化DataXceiverServer3、初始…

C# 在矩形内获取一个指定大小的矩形(两个矩形的中心点是重合的)

C# 在矩形内获取一个指定大小的矩形&#xff08;两个矩形的中心点是重合的&#xff09; 示例1&#xff1a; using System.Drawing;public class RectangleUtils {public static Rectangle GetInnerRectangle(Rectangle outerRectangle, Size innerSize){// 计算内部矩形的左上…

MySQL的数据锁表(data_locks 表)

data_locks 表显示了持有和请求的数据锁。关于哪些锁请求被哪些持有的锁阻塞的信息。 示例数据锁信息&#xff1a; mysql> SELECT * FROM performance_schema.data_locks\G *************************** 1. row ***************************ENGINE: INNODBENGINE_LOCK_ID:…

《WebKit 技术内幕》学习之十一(2):多媒体

2 视频 2.1 HTML5视频 在HTML5规范定义中&#xff0c;Web开发者可以使用“video”元素来播放视频资源。视频中有个重要的问题就是视频编码格式&#xff0c;对此&#xff0c;目前标准中包含了三种编码格式&#xff0c;它们分别是Ogg、MPEG4和WebM。其中Ogg是由Xiph.org组织开…

PyQt中的信号/槽以及纯python实现信号/槽设计模式

1.信号与槽的基本概念 在PyQt中&#xff0c;信号是一种对象间通信的机制。当某个特定事件发生时&#xff0c;一个信号被发射。槽是接收信号的方法&#xff0c;当信号被发射时&#xff0c;与之连接的槽会被调用。这种机制使得不同部分的代码能够松耦合地交流。 2.PyQt中的信号与…

【模拟算法系列】详解5道题

本文讲解模拟算法系列的5道经典题&#xff0c;在讲解题目的同时提供AC代码&#xff0c;点击题目即可打开对应OJ链接 目录 模拟算法的介绍 1、替换所有的问号 2、提莫攻击 3、 Z 字形变换 4、外观数列 5、数青蛙 模拟算法的介绍 题目中明确告诉你要干什么&#xff0c;思路…

C++ //练习 3.3 请说明string类的输入运算符和getline函数分别是如何处理空白字符的。

C Primer&#xff08;第5版&#xff09; 练习 3.3 练习 3.3 请说明string类的输入运算符和getline函数分别是如何处理空白字符的。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 解释 cin读取并忽略有效字符之前所有的空白字符&…

打开文件:内核做了什么

一.文件描述符本质 文件描述符的是一个非负整数&#xff0c;它是操作系统内核用来标识和管理打开文件的抽象概念。在 Linux 和其他类 Unix 操作系统中&#xff0c;几乎所有与文件相关的操作都是通过文件描述符来进行的。 文件描述符是操作系统内核为每个进程维护的一个表&…

ChatGPT 和文心一言 | 两大AI助手哪个更胜一筹

欢迎来到英杰社区&#xff1a; https://bbs.csdn.net/topics/617804998 欢迎来到阿Q社区&#xff1a; https://bbs.csdn.net/topics/617897397 &#x1f4d5;作者简介&#xff1a;热爱跑步的恒川&#xff0c;致力于C/C、Java、Python等多编程语言&#xff0c;热爱跑步&#xff…

Web开发4:单元测试

在Web开发中&#xff0c;单元测试是一种重要的开发实践&#xff0c;它可以帮助我们确保代码的质量和可靠性。通过编写和运行单元测试&#xff0c;我们可以验证代码的正确性&#xff0c;减少错误和缺陷&#xff0c;并提高代码的可维护性。本文将介绍单元测试的概念、好处以及如何…

券商既然是发行债券的人,为什么他还收中介费呢?

券商在金融市场中扮演着多种角色&#xff0c;其中发行债券只是其业务的一部分。券商作为金融中介机构&#xff0c;其主要功能是为投资者和融资者提供撮合服务&#xff0c;促进金融市场的有效运行。 当券商作为发行债券的角色时&#xff0c;它们会帮助公司或政府等机构发行债券…

Chrome 浏览器插件 runtime 字段解析

运行时 runtime 使用 chrome.runtime API 检索 Service Worker&#xff0c;返回有关 manifest.json 的详细信息监听和响应应用或扩展程序生命周期中的事件还可以使用此 API 将网址的相对路径转换为完整的一个 URL 一、权限 Runtime API 上的大多数方法都不需要任何权限 但是…

头歌C++之Switch控制语句编程实训

目录 第1关:根据输入数字判断是星期几 本关必读 本关任务 测试说明 第2关:根据输入的数值和运算符做相应运算 本关必读 本关任务 测试说明 第3关:根据输入年月计算该月份的天数 本关必读 本关任务

python写一个彩票中奖小游戏修订版本

先说规则&#xff1a; print("下面介绍双色球颜色规则:")print("一等奖,投注号码与当期开奖号码全部相同&#xff08;顺序不限&#xff0c;下同&#xff09;&#xff0c;即中奖")print("二等奖:投注号码与当期开奖号码中的6个红色球号码相同,即中奖&q…

鸿蒙开发实战-手写文心一言AI对话APP

运行环境 &#xff08;后面附有API9版本&#xff0c;可修改后在HarmonyOS4设备上运行&#xff09; DAYU200:4.0.10.16 SDK&#xff1a;4.0.10.15 IDE&#xff1a;4.0.600 在DAYU200:4.0.10.16上运行 一、创建应用 1.点击File->new File->Create Progect 2.选择模版…

分享7种SQL的进阶用法

分享7种SQL的进阶用法 前言 还只会使用SQL进行简单的insert、update、detele吗&#xff1f;本文给大家带来7种SQL的进阶用法&#xff0c;让大家在平常工作中使用SQL简化复杂的代码逻辑。 1.自定义排序&#xff08;ORDER BY FIELD&#xff09; 在MySQL中ORDER BY排序除了可以…