• android Compose Text文本


    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 字体样式

    1. Text(
    2. text = "Hello World!",
    3. style = TextStyle(fontSize = 25.sp,
    4. fontWeight = FontWeight.Bold,
    5. background = Color.Cyan,
    6. lineHeight = 35.sp, //行高
    7. letterSpacing = 4.sp, //字间距
    8. textDecoration = TextDecoration.LineThrough
    9. )
    10. )
    11. Text(
    12. text = "Hello World!",
    13. style = MaterialTheme.typography.h6.copy(fontStyle = FontStyle.Italic)
    14. )
    15. Text(
    16. text = "Hello World!",
    17. style = MaterialTheme.typography.h6.copy(fontStyle = FontStyle.Italic)
    18. )
    19. Text(
    20. text = "你好,我正在学习compose。你好,我正在学习compose。你好,我正在学习compose。你好,我正在学习compose。",
    21. maxLines = 1,
    22. style = MaterialTheme.typography.body1,
    23. overflow = TextOverflow.Ellipsis //设置行数1,超过一行结尾使用...
    24. )

    2.fontFamily 字体风格

    1. //字体
    2. Text(text = "hello")
    3. //使用自定义字体需要在res中创建font文件夹,字体文件放入进去
    4. Text(text = "hello", fontFamily = FontFamily.Cursive)

    3.AnnotatedString 多样式字体。 文字局部内容格式突出显示。

    1. val scope = rememberCoroutineScope()
    2. //snakerbar状态
    3. val snackbarHostState = remember { SnackbarHostState() }
    4. //文本
    5. var text = buildAnnotatedString {
    6. withStyle(
    7. style = SpanStyle(fontSize = 18.sp, color = Color.Red)
    8. ) {
    9. append("请点击")
    10. }
    11. //设置部分内容可以点击,开头
    12. pushStringAnnotation(tag = "url", annotation = "https://www.baidu.com")
    13. withStyle(
    14. style = SpanStyle(
    15. color = Color.Blue,
    16. fontStyle = FontStyle.Italic,
    17. textDecoration = TextDecoration.LineThrough
    18. )
    19. ) {
    20. append("用户协议")
    21. }
    22. //设置部分内容可以点击,结尾
    23. pop()
    24. }
    25. Text(text = text )
    26. //设置点击事件,可以点击的文字
    27. ClickableText(text = text, style = TextStyle(fontSize = 29.sp, color = Color.Yellow),
    28. onClick = {
    29. text.getStringAnnotations(
    30. start = it,
    31. end = it,
    32. tag = "url"
    33. ).firstOrNull()?.let {
    34. scope.launch {
    35. //显示snackbar代替dialog
    36. snackbarHostState.showSnackbar(it.item)
    37. }
    38. }
    39. })
    40. //snakerbar显示位置
    41. SnackbarHost(hostState = snackbarHostState)

    4.SelectionContainer。 设置文本可以复制

    1. SelectionContainer {
    2. Text(text = "hello")
    3. }

  • 相关阅读:
    springboot的web开发
    精准诊断,精确治疗,智芯传感ZXPA侵入式压力传感器为心血管疾病患者带来福音
    IO/NIO交互模拟及渐进式实现
    知识蒸馏学习
    源码编译Qt 5.15.9+msvc2019
    深度学习21天——卷积神经网络(CNN):天气识别(第5天)
    【数据库07】后端开发必备的大数据知识指南
    一文带你深入理解【Java基础】· 注解
    Oracle管理表(创建、修改、删除)
    Jenkins部署前端项目
  • 原文地址:https://blog.csdn.net/sinat_35541927/article/details/128088383