首页 > 编程语言 >app直播源码,flutter Text自动计算文本内容的宽度

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

时间:2022-11-29 10:56:41浏览次数:58  
标签:Text app maxLines 源码 内容 TextPainter 宽度 文本

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

一、什么是TextPainter

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

 


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

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

 

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

 

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

 

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

 

标签:Text,app,maxLines,源码,内容,TextPainter,宽度,文本
From: https://www.cnblogs.com/yunbaomengnan/p/16934758.html

相关文章

  • 普元中间件Primeton AppServer6.5安装(Windows)
    本文在Windows环境下安装普元中间件PrimetonAppServer6.5(以下简称PAS)一、安装前准备1.1使用软件版本Primeton_AppServer_6.5_Enterprise_Editio(Windows)1.2安装前注意......
  • Unity Application Block 3月12 发布的版本
    3月12日,Unity又发布了正式发布之前的版本,这个版本提供了安装程序.并且提供了一个依赖注入在实现方式:Setterinjection的配置API。之前发布的版本,属性......
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:ArcFace人脸识别
    本文简述如何在Smobiler中使用ArcFace(虹软人脸识别)。Step1.新建一个SmobilerForm窗体,再拖入Button,Label,TextBox和AcrFace,布局如下在设计器中给MediaView.Url赋值......
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:ArcFace人脸识别
    本文简述如何在Smobiler中使用ArcFace(虹软人脸识别)。Step1.新建一个SmobilerForm窗体,再拖入Button,Label,TextBox和AcrFace,布局如下在设计器中给MediaView.Url赋值......
  • easylogging++的那些事(四)源码分析(二)日志记录宏(四)偶尔日志宏
    目录CLOG_EVERY_N宏宏展开Info日志宏CLOG_EVERY_N(xxx,INFO,xxx)Trace日志宏CLOG_EVERY_N(xxx,TRACE,xxx)Debug日志宏CLOG_EVERY_N(xxx,DEBUG,xxx)Fatal日志......
  • LevelDB源码剖析(3) Skiplist跳表
    1.背景什么是跳表?跳表是SortedMap的一种具体实现,是一种概率性的数据结构。跳表拥有SortedMap的所有功能,定位和红黑树类似,其和红黑树的区别在于优点:跳表的实现更加简单......
  • 深入理解Kubernetes 4A - Audit源码解析
    Overview本文是关于Kubernetes4A解析的第四章深入理解Kubernetes4A-Authentication源码解析深入理解Kubernetes4A-Authorization源码解析深入理解Kubernetes......
  • Go并发编程-context包
    作用context主要用来在goroutine之间传递上下文信息,包括:取消信号超时时间截止时间传值原理:contex接口Go里并没有直接为我们提供一个统一的context对象,而是......
  • cocos2d-x 是男人就下100层 附源码
    1.效果图:  玩法:一个不断下降的小人,点击屏幕的left或者right控制小人的移动方向,尽可能生存久些. 为什么要搞这个游戏呢?因为在2012年的8月份,我完成它的android版本,......
  • Appendable
    Appendable /**Copyright(c)2003,2004,Oracleand/oritsaffiliates.Allrightsreserved.*ORACLEPROPRIETARY/CONFIDENTIAL.Useissubjecttolicense......