Flutter 颤振:textformfield的问题
我的应用程序中有一个textformfield,如下所示:Flutter 颤振:textformfield的问题,flutter,dart,Flutter,Dart,我的应用程序中有一个textformfield,如下所示: TextFormField( //maxLength: 02, textAlign: TextAlign.center, keyboardType: TextInputType.numberWithOptions(decimal: true), decoration: InputDecoration( labelText:
TextFormField(
//maxLength: 02,
textAlign: TextAlign.center,
keyboardType: TextInputType.numberWithOptions(decimal: true),
decoration: InputDecoration(
labelText: textFieldInitVal.toString(),
contentPadding: const EdgeInsets.all(0),
border: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.black54,
),
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.blue,
),
),
),
//initialValue: textFieldInitVal.toString(),
onChanged: (val) {
if (int.parse(val) > 24) {
setState(() {
errorTxt = 'ERROR: Value cannot be more than 24 Hrs';
});
} else {
setState(() {errorTxt = '';});
setState(() {value1 = int.parse(val).toDouble();});
//setState(() {value1 = double.parse(val);});
}
}
),
在上面的代码段中,textFieldInitVal
和value1
都是double类型
我面临两个不同的问题:
textAlign:textAlign.center
,也无法将labelText:textFieldInitVal.toString()居中。标签将移动并粘贴到TextFormField的左边缘。添加一些padding
会有所帮助,但它也会影响输入文本的放置方式,因此我试图避免这样做
onChanged:(val){
一段中,当我执行print(val)
时,我注意到TextFormField在十进制值之后没有任何内容,因此当从val
的字符串转换为double时,我只得到整数属性<代码>文本> <代码>将在字段的中间对齐您在字段中写入的文本,但标签将保留在左侧。
在onChanged:(val){piece中,当我进行打印(val)时,我注意到TextFormField在十进制值之后没有任何内容,因此在将val的string转换为double时,我只得到整数 关于这个问题,在转换时需要使用
double
类而不是int
类来获取小数
onChanged: (val) {
if (double.parse(val) > 24) {
setState(() {
errorTxt = 'ERROR: Value cannot be more than 24 Hrs';
});
} else {
print(double.parse(val).toDouble());
setState(() {errorTxt = '';});
setState(() {value1 = int.parse(val).toDouble();});
}
}
我接受这个,因为这与我解决问题的方式非常接近,但有一点需要注意: