Flutter. Ограничить ввод в TextFormField диапазоном чисел
Необходимо ограничить ввод TextFormField диапазоном чисел. Например, от 7 до 112. Что для этого нужно использовать?
Ответы (1 шт):
Автор решения: White Tomato
→ Ссылка
Вы можете использовать inputFormatters, чтобы достичь желаемого результата. Но придется немного подумать все же.
TextFormField(
inputFormatters: [
TextInputFormatter.withFunction(
(oldValue, newValue) {
String _value = newValue.text;
int num = _value.replaceAll(new RegExp(r'[^0-9]'), '').toInt();
if (_value.length > 3)
return TextEditingValue(
text: oldValue.text,
selection: TextSelection.collapsed(
offset: oldValue.selection.end,
),
);
if (num < 7 &&) num = 7;
if (num > 112) num = 112;
return TextEditingValue(
text: '$num',
selection: TextSelection.collapsed(
offset: num.length,
),
);
},
),
],
),
Я накидал самый примитивный пример, надеюсь, вы справитесь.)