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//绘制文本字体样式 )
1.style 字体样式
- Text(
- text = "Hello World!",
- style = TextStyle(fontSize = 25.sp,
- fontWeight = FontWeight.Bold,
- background = Color.Cyan,
- lineHeight = 35.sp, //行高
- letterSpacing = 4.sp, //字间距
- textDecoration = TextDecoration.LineThrough
- )
- )
- Text(
- text = "Hello World!",
- style = MaterialTheme.typography.h6.copy(fontStyle = FontStyle.Italic)
- )
-
- Text(
- text = "Hello World!",
- style = MaterialTheme.typography.h6.copy(fontStyle = FontStyle.Italic)
- )
- Text(
- text = "你好,我正在学习compose。你好,我正在学习compose。你好,我正在学习compose。你好,我正在学习compose。",
- maxLines = 1,
- style = MaterialTheme.typography.body1,
- overflow = TextOverflow.Ellipsis //设置行数1,超过一行结尾使用...
- )
2.fontFamily 字体风格
- //字体
- Text(text = "hello")
- //使用自定义字体需要在res中创建font文件夹,字体文件放入进去
- Text(text = "hello", fontFamily = FontFamily.Cursive)
3.AnnotatedString 多样式字体。 文字局部内容格式突出显示。
- val scope = rememberCoroutineScope()
- //snakerbar状态
- val snackbarHostState = remember { SnackbarHostState() }
- //文本
- var text = buildAnnotatedString {
- withStyle(
- style = SpanStyle(fontSize = 18.sp, color = Color.Red)
- ) {
- append("请点击")
- }
- //设置部分内容可以点击,开头
- pushStringAnnotation(tag = "url", annotation = "https://www.baidu.com")
- withStyle(
- style = SpanStyle(
- color = Color.Blue,
- fontStyle = FontStyle.Italic,
- textDecoration = TextDecoration.LineThrough
- )
- ) {
- append("用户协议")
- }
- //设置部分内容可以点击,结尾
- pop()
- }
-
-
- Text(text = text )
- //设置点击事件,可以点击的文字
- ClickableText(text = text, style = TextStyle(fontSize = 29.sp, color = Color.Yellow),
- onClick = {
- text.getStringAnnotations(
- start = it,
- end = it,
- tag = "url"
- ).firstOrNull()?.let {
- scope.launch {
- //显示snackbar代替dialog
- snackbarHostState.showSnackbar(it.item)
- }
- }
-
- })
- //snakerbar显示位置
- SnackbarHost(hostState = snackbarHostState)
4.SelectionContainer。 设置文本可以复制
- SelectionContainer {
- Text(text = "hello")
- }