Flutter TextFormField: texttinputtype.当我使用控制器时,数字不能正常工作



当我为Textformfield使用控制器并想要定义keyboardtype为TextinputType时。数字,我不能输入任何东西,除非我输入任何非数字字符,比如";或"产生绯闻。

final TextEditingController _questionIndexController = TextEditingController();
return Container(
height: _avaliableHeight * 0.05,
width: _sideBarWidth * 0.25,
child: TextFormField(
// keyboardType: TextInputType.number,
controller: _questionIndexController,
keyboardType: TextInputType.number,
style: TextStyle(fontSize: 10,),
decoration: InputDecoration(
contentPadding: EdgeInsets.symmetric(vertical: 0, horizontal: 5.0),
border: OutlineInputBorder(borderRadius: BorderRadius.circular(10.0)),
),

textInputAction: TextInputAction.done,
),

这是使用TextInputType.number时已知的Flutter bug https://github.com/flutter/flutter/issues/88833#issuecomment-906301512

解决方法是将控制器中的选择偏移量设置为0:

final TextEditingController _questionIndexController = TextEditingController.fromValue(TextEditingValue(text: '', selection: TextSelection.collapsed(offset: 0)));

最新更新