return Container(
width: (screenWidth / 2) - 45,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
LightText(
text: widget.labelText,
),
Padding(
padding: EdgeInsets.only(top: 3),
),
Container(
height: 24,
decoration:
BoxDecoration(borderRadius: BorderRadius.circular(3)),
child: Theme(
data: ThemeData(hintColor: lightGrey),
child: TextField(
inputFormatters: [
WhitelistingTextInputFormatter.digitsOnly,
CurrencyInputFormatter(),
],
enabled: widget.enableVal,
controller: widget.controllerText,
keyboardType: TextInputType.number,
decoration: InputDecoration(
disabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.white)),
border: OutlineInputBorder(),
contentPadding:
const EdgeInsets.symmetric(vertical: 3.0)),
))),
],
));
}
}
答案 0 :(得分:0)
每当数据更改时,您都可以使用Textfield的onChanged
事件获取数据。
这是您可以执行的操作。
String someData;
onChanged: (data) {
//data is your current value of the textfield.
someData = data;
},
使用它,您将始终拥有TextField的数据。
修改
您也可以使用onSubmitted
事件来获得所需的结果。
TextField(
onSubmitted: (data) {},
),
答案 1 :(得分:0)
为此使用TextEditingController
。伪代码示例:
TextEditingController _controller;
...
TextField(
controller: _controller,
),
...
void _someMethod(){
String text = _controller.text;
}
要收听焦点之间的变化,请查看以下内容:Focus and text fields
FocusNode _focus;
...
TextField(
focus: _focus;
)
...
void check(){
if(_focus.hasFocus){
// insert handling
}
}
我认为,除非您自己检查文档,否则最好的答案是。 Handle changes to a text field