fillText static method

String fillText({
  1. required String text,
  2. int len = 16,
  3. FillTextAlign align = FillTextAlign.right,
})

填充字符串,当字符传递小于给定的长度则以空白符填充,如果超出则截取

FillTextAlign.center时,可用长度为奇数默认左填充优先

text 字符串 len 字符长度 align 内容对齐方向

Implementation

static String fillText({
  required String text,
  int len = 16,
  FillTextAlign align = FillTextAlign.right,
}) {
  String str = '';
  final textLen = text.length;
  if (textLen > len) {
    str = text.substring(0, len);
  } else if (textLen < len) {
    final availableCount = len - textLen;
    final blank = List.generate(availableCount, (index) => ' ').join();
    if (align == FillTextAlign.right) {
      str = '$blank$text';
    } else if (align == FillTextAlign.center) {
      final isOdd = availableCount.isOdd;
      int start = availableCount ~/ 2;
      if (isOdd) {
        start = (availableCount + 1) ~/ 2;
      }
      str = '${blank.substring(0, start)}$text${blank.substring(start)}';
    } else {
      str = '$text$blank';
    }
  } else {
    str = text;
  }
  return str;
}