Flutter计算文本高度 使用TextPainter计算文本高度

在开发中我们需要去计算文本的高度,从来去设置控件的高度,在flutter中我们可以使用TextPainter来计算文本高度

//获取文字高度 text:文字内容 fontSize:字体大小 fontWeight:字重 height:行高 maxWidth:最大宽度,maxLines:最大行数
   static double getTextContextSizeHeight(String text,double fontSize,FontWeight fontWeight,double height,double maxWidth,int maxLines){
      TextPainter textPainter = TextPainter(
        //用于选择用户的语言和格式首选项的标识符。
        locale: WidgetsBinding.instance.window.locale,
        //最大行数
        maxLines: maxLines,
        //文本书写方向l to r 汉字从左到右
        textDirection: TextDirection.ltr,
        //文本内容以及文本样式 style:可以根据在代码中设置的TextStyle增加字段。
        text: TextSpan(
          text: text,
          style: TextStyle(
            fontWeight:fontWeight,//字重
            fontSize: fontSize ,//字体大小
            height: height,//行高
          )
        )
      );
      //最大宽度
      textPainter.layout(maxWidth: maxWidth);
      //返回高度
      return textPainter.height;
  }
posted @ 2024-01-17 17:07  hczhhm  阅读(1032)  评论(5)    收藏  举报