嗨,我正在尝试转换不同的重量单位。当我输入金额并清除它时,第二个文本字段仍会显示该金额,而不是显示“ 0”。我如何解决这个问题。下面有2张图片。
[
我也想删除后删除2000。我的代码如下。
class Weight extends StatefulWidget {
@override
_WeightState createState() => _WeightState();
}
class _WeightState extends State<Weight> {
String _value1;
String _value2;
TextEditingController _controller;
TextEditingController _controller2;
static final Map<String,double> changes= {
"gram-kilogram": 0.001,
"kilogram-gram": 1000,
"kilogram-kilogram": 1,
"gram-gram": 1,
};
initState(){
super.initState();
_controller=TextEditingController();
_controller2=TextEditingController();
}
dispose(){
super.dispose();
_controller.dispose();
_controller2.dispose();
}
这里删除了更多代码,导致代码过多。
new TextField(
controller: _controller,
onChanged: (text)=>{
_controller2.text=(double.parse(text)*changes[_value1+"-"+_value2]).toString(),
},
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: ("Enter amount in $_value1")
),
keyboardType: TextInputType.number,
style: new TextStyle(
fontFamily: "Poppins",
),
),
new Padding(padding: EdgeInsets.only(top: 50.0)),
new DropdownButton(
items: [
DropdownMenuItem(child: Text("Kilogram"),
value: "kilogram",
onTap: (){
},),
DropdownMenuItem(child: Text("gram"),
value: "gram",
onTap: (){
},),
],
onChanged: (String value){
setState((){
_value2 = value;
print("$value");
});
},
hint: Text('Select Item'),
value: _value2,
),
new TextField(
controller: _controller2,
onChanged: (text)=>{
_controller.text=(double.parse(text)*changes[_value2+"-"+_value1]).toString(),
},
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: ("Enter amount in $_value2")
),),],),),);}}
TextField(controller: _controller,
onChanged: (text) => {
if(text.isEmpty)
_controller2.text = '0.0';
else
_controller2.text=(double.parse(text)*changes[_value1+""+_value2]).toString(),
setState((){});
},
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句