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自动计算文本内容的宽度, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2021-11-29 短视频系统,折叠cell的使用
2021-11-29 短视频平台源码,IOS图文混排基础
2021-11-29 一对一语音app源码,给列表增加下拉刷新和上滑加载实现