text_size_converter.dart 836 B

1234567891011121314151617181920212223242526
  1. import 'package:flutter/cupertino.dart';
  2. class TextSizeConvert {
  3. ///计算文本Size
  4. static Size getTextSize(String text, TextStyle style,
  5. {int maxLines = 2 ^ 31, double maxWidth = double.infinity}) {
  6. if (text.isEmpty) {
  7. return Size.zero;
  8. }
  9. final TextPainter textPainter = TextPainter(
  10. textDirection: TextDirection.ltr,
  11. text: TextSpan(text: text, style: style),
  12. maxLines: maxLines)
  13. ..layout(maxWidth: maxWidth);
  14. return textPainter.size;
  15. }
  16. static double paintWidthWithTextStyle(TextStyle style, String text) {
  17. final TextPainter textPainter = TextPainter(
  18. text: TextSpan(text: text, style: style),
  19. maxLines: 1,
  20. textDirection: TextDirection.ltr)
  21. ..layout(minWidth: 0, maxWidth: double.infinity);
  22. return textPainter.size.width;
  23. }
  24. }