当用户选择向发票中添加的产品时,会出现一个包含数量 TextField 的警告对话框,以便他可以更改产品所需的数量,在 TextFormFiels 中手动更改数量效果很好,但使用减号按钮更改数量会使应用程序关闭,控制台中的唯一消息是:与设备的连接丢失。
class InputNumberAlertDialog extends StatefulWidget {
const InputNumberAlertDialog(
{super.key, this.title, this.subTitle, this.initialValue});
final String? title;
final String? subTitle;
final double? initialValue;
@override
State<InputNumberAlertDialog> createState() => _InputNumberAlertDialogState();
}
class _InputNumberAlertDialogState extends State<InputNumberAlertDialog> {
double val = 0;
final TextEditingController _controller = TextEditingController();
@override
void initState() {
val = widget.initialValue ?? 0;
_controller.text = val.toString();
super.initState();
}
@override
Widget build(BuildContext context) {
return AlertDialog(
title: Text("${widget.title}"),
content: Column(
mainAxisSize: MainAxisSize.min,
children: [
Text(widget.subTitle ?? ""),
TextFormField(
controller: _controller,
textAlign: TextAlign.center,
keyboardType: TextInputType.number,
decoration: InputDecoration(
prefixIcon: IconButton(
onPressed: () {
setState(() {
val--;
_controller.text = val.toString();
});
},
icon: const Icon(Icons.minimize),
),
suffixIcon: IconButton(
onPressed: () {},
icon: const Icon(Icons.add),
),
),
),
],
),
actions: [
TextButton(
onPressed: () {
Navigator.of(context).pop(true);
},
child: const Text("OK")),
TextButton(
onPressed: () {
Navigator.of(context).pop(false);
},
child: const Text("Annuler"))
],
);
}
}
我已经使用了你的代码。从我这边来看,你的代码运行良好。请重用您的代码并删除 setSaet()。 谢谢!!!