我已经通过控制器在动态textfield
中设置了值,但是仅当光标在输入的文本周围移动时,我才允许编辑值。
我试图以此方式设置价值
shippingNameController.value = shippingNameController.value.copyWith(text:name);
但是在尝试上述解决方案之前,我将动态文本字段命名为Billing name(帐单名称),并且想要更新送货名称中的billing name(帐单名称)的值。
shippingNameController.text=name;
当我使用它时它不起作用,它在文本字段的开头显示光标,而不更新值。
new TextField(
style: TextStyle(fontFamily: 'semibold',color: MyColors.colorPrimary),
keyboardType:field.type=='STR'||field.type=='EMAIL'? TextInputType.text:TextInputType.number,
textInputAction: TextInputAction.done,
decoration: InputDecoration(contentPadding:EdgeInsets.all(8.0),
hintStyle: TextStyle(fontFamily: 'semibold',color: MyColors.colorPrimary),
border: InputBorder.none,),
controller: shippingNameController,
onChanged: (String val) {
enteredValue(field,val);
setState(() {
shippingNameController.text = val;
sShppingfieldList[p].fieldvalue=val;
});
},),
答案 0 :(得分:1)
onSaved: (value){
setState(() {
_state = value
},
onChanged:(v){
_state = v;
print(_state)
},
这对我有用。
答案 1 :(得分:0)
尝试一下
我想,如果您想设置文字,则必须这样做
setState((){
shippingNameController.text = "abc";
});
答案 2 :(得分:0)
类似的事情应该起作用:
child: TextField(
keyboardType: TextInputType.text,
onChanged: (name) {
setState((){
shippingNameController.text = name;
});
},
),
答案 3 :(得分:0)
是否已将侦听器添加到控制器。添加完整的代码。