Как я могу проверить, содержит ли TextField символы юникода во флаттере/дротике?

Я пытаюсь подсчитать количество символов в TextField для приложения для обмена сообщениями. Если тело сообщения содержит какие-либо Unicode символы, общая длина сообщения составляет 70 символов, в противном случае — 160.

2
0
1 935
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

string.codeUnits — это массив кодовых единиц Unicode UTF-16. Так что я бы сказал, что это может быть похоже на

int maxLengthOfTextField(String text){
  final int maxBits = 128;
  List<int> unicodeSymbols = text.codeUnits.where((ch) => ch > maxBits ).toList();
  return unicodeSymbols.length > 0 ? 160 : 70;
}

final textFieldController = TextEditingController();
TextField(
  controller: textFieldController,
  maxLength: maxLengthOfTextField(textFieldController.text)
);

Работает как шарм. Спасибо :)

Xihuny 10.04.2019 19:47

Другие вопросы по теме