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")}
上一篇:谈钱伤感情的句子