app直播源码,flutter Text自动计算文本内容的宽度

app直播源码,flutter Text自动计算文本内容的宽度

一、什么是TextPainter

在内容开始之前,我们先来看一下它的属性

 

1
<br>TextPainter({<br>    InlineSpan? text,      // TextSpan 文本组件<br>    TextAlign textAlign = TextAlign.start,   // 文本对齐方式<br>    TextDirection? textDirection,      // 文本开始方向<br>    double textScaleFactor = 1.0,      // 内容间隔<br>    int? maxLines,                   // 最大显示行数,默认1<br>    String? ellipsis,                  // 内容截取方式<br>    Locale? locale,                    // 显示文本语言设置<br>    StrutStyle? strutStyle,            // struts 的样式<br>    TextWidthBasis textWidthBasis = TextWidthBasis.parent,    // 多行文本将占用父文件所给出的全部宽度<br>    ui.TextHeightBehavior? textHeightBehavior,    // TextHeightBehavior对象<br>  })<br> 

组件中的有些属性,大家都比较陌生,当然,在外面日常开发中,也基本上不会用。

 

二、封装TextPainter 并返回内容宽度

 

1
///value: 文本内容;fontSize : 文字的大小;fontWeight:文字权重;maxWidth:文本框的最大宽度;maxLines:文本支持最大多少行<br>static double calculateTextHeight(BuildContext context, String value, FontWeight fontWeight, fontSize, double maxWidth, int maxLines){<br>  if(value.isEmpty){<br>    return 0.0;<br>  }<br>  TextPainter painter = TextPainter(<br>    locale: Localizations.localeOf(context),<br>    maxLines: maxLines,<br>    textDirection: TextDirection.ltr,<br>    text: TextSpan(<br>      text: value,<br>      style: TextStyle(<br>        fontSize: fontSize,<br>        fontWeight: fontWeight,<br>      ),<br>    ),<br>  );<br>  painter.layout(maxWidth: maxWidth);<br>  return painter.width;<br>}

 

 以上就是app直播源码,flutter Text自动计算文本内容的宽度, 更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(131)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2021-11-29 短视频系统,折叠cell的使用
2021-11-29 短视频平台源码,IOS图文混排基础
2021-11-29 一对一语音app源码,给列表增加下拉刷新和上滑加载实现
点击右上角即可分享
微信分享提示