Класс LengthLimitingTextInputFormatter
Класс LengthLimitingTextInputFormatter передают в inputFormatters у TextField.
Синтаксис
LengthLimitingTextInputFormatter(5)
Пример
Давайте ограничим пятью символами:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: TextField(inputFormatters: [LengthLimitingTextInputFormatter(5)], decoration: const InputDecoration(labelText: 'abcde')),
),
),
),
);
}
На экране длиннее пяти символов ввод не пройдёт.
Пример
Давайте зададим maxLengthEnforcement:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: TextField(inputFormatters: [LengthLimitingTextInputFormatter(5, maxLengthEnforcement: MaxLengthEnforcement.enforced)], decoration: const InputDecoration(hintText: '12345')),
),
),
),
);
}
На экране лимит жёстко обрезает ввод.
Смотрите также
-
класс
TextInputFormatter,
который фильтрует ввод посимвольно -
класс
FilteringTextInputFormatter,
который пропускает или режет символы -
виджет
TextField,
который принимает текст с клавиатуры -
класс
TextEditingController,
который хранит текст и выделение