как отформатировать счетчик, если он слишком велик по значению во флаттере? - PullRequest
0 голосов
/ 10 июля 2020

Это моя функция buildCountText во флаттере, где я передаю метку и считаю ее аргументами. Я использую эту функцию, чтобы показать свое количество подписчиков в приложении, но я не знаю, как отформатировать свой счет, если он значение велико в тысячах или миллионах, я не хочу записывать всю цифру, если она в миллионах, я просто хочу записать ее как 1M (например). но я не знаю, как его отформатировать таким образом.

buildCountText(String label, int count) {
    return Container(
      padding: EdgeInsets.only(top: 5, bottom: 6),
      alignment: Alignment.centerLeft,
      child: RichText(
        text: TextSpan(
          //text: label,
          style: TextStyle(
              fontFamily: "OpenSans", color: Theme.of(context).primaryColor),
          children: <TextSpan>[
            TextSpan(
                text: label,
                style: TextStyle(
                    fontFamily: "OpenSans", fontWeight: FontWeight.w500)),
            TextSpan(
                text:_isLoading?" ...": ' $count', style: TextStyle(fontWeight: FontWeight.bold)),
          ],
        ),
      ),
    );
  }

1 Ответ

1 голос
/ 10 июля 2020

Используйте средство форматирования чисел. https://pub.dev/documentation/intl/latest/intl/NumberFormat-class.html

var f = NumberFormat.compact();
print(f.format(100000)); //<= prints 100K
...