我想按“获取日期”按钮获取当前日期,并显示在文本字段中,如下图所示,
可能吗?我怎样才能做到这一点 ?请在这里帮助新手。
class _Home2State extends State<Home2> {
DateTime date;
final amount = TextEditingController();
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'mytest1',
home: Scaffold(
body: Card(
child: Column(
children: <Widget>[
TextField(
decoration: InputDecoration(labelText: 'Amount'),
),
Row(
children: <Widget>[
Expanded(
child: TextField(
// onChanged: ???,
decoration: InputDecoration(labelText: 'Date'),
),
),
RaisedButton(
color: Colors.blue,
child: Text(
'Get Date',
style: TextStyle(color: Colors.white),
),
onPressed: () => setState(
() {
date = new DateTime.now();
print(date);
},
),
)
],
)
],
),
),
),
);
}
}
我想按“获取日期”按钮获取当前日期,并显示在文本字段中,如下图所示,
最佳答案
首先,将 Controller 分配给所需的TextField,例如controller: amount
。
其次,在您的amount.text = '$date';
中添加setState()
DateTime date;
final amount = TextEditingController();
@override
Widget build(BuildContext context) {
return Card(
child: Column(
children: <Widget>[
TextField(
decoration: InputDecoration(labelText: 'Amount'),
),
Row(
children: <Widget>[
Expanded(
child: TextField(
controller: amount,
decoration: InputDecoration(labelText: 'Date'),
),
),
RaisedButton(
color: Colors.blue,
child: Text(
'Get Date',
style: TextStyle(color: Colors.white),
),
onPressed: () => setState(
() {
date = DateTime.now();
amount.text = '$date';
},
),
)
],
)
],
),
);
}