app直播原始碼,flutter Text自動計算文字內容的寬度

zhibo系統開發發表於2022-11-29

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自動計算文字內容的寬度, 更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2925617/,如需轉載,請註明出處,否則將追究法律責任。

相關文章