Estou lutando com isso há meses. Tenho um TextField que aparece como o primeiro filho de uma Row no meu aplicativo Android. O texto do TextField aparece fora das bordas. Além disso, a borda inferior do TextField parece estar centralizada na minha linha, e não importa como eu altero os alinhamentos do eixo principal ou cruzado da linha.
Quero que o centro do TextField se alinhe com o centro da linha, e que o texto apareça no centro das bordas. O que estou fazendo errado?
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
SizedBox(
width: 50,
height: 40,
child: TextField(
controller: myController,
keyboardType: TextInputType.number,
maxLength: 2,
textAlign: TextAlign.center,
textAlignVertical: TextAlignVertical.bottom,
style: TextStyles.mediumWhiteText,
decoration: const InputDecoration(
border: OutlineInputBorder(),
),
inputFormatters: <TextInputFormatter>[
FilteringTextInputFormatter.digitsOnly
], // Only numbers can be enter
Se você ainda quiser usar o
maxLength
atributo, você pode usar este código e modificá-lo conforme necessário. Outra maneira, você pode separar o contador para o novo widget.Para centralizar o texto abaixo do
TextField
, você precisa modificar obuildCounter
.Código completo