我正在使用flutter应用程序,我想检查屏幕上的警报对话框是否打开。有人能告诉我如何做到这一点吗?现在每次我按ontap,它都会出现一个新的对话框。我如何才能只出现一个对话框,而不是多个新的对话框?我已经试过bool,ontap取消所有不工作。第一个
brqmpdu11#
你可以用一个布尔状态来实现这个功能,我们称之为isButtonActive。按钮的启用/禁用取决于这个状态的值。当按钮被按下时,将状态设置为false,当对话框关闭时,将状态设置为true。下面是一个示例代码:
isButtonActive
class _HomePageState extends State<HomePage> { bool isButtonActive = true; showTimer(BuildContext context) async { setState(() { isButtonActive = false; }); await Future.delayed(Duration(seconds: 2)); showDialog( context: context, builder: (BuildContext context) { return Column( children: const [ Text('qwerty'), ], ); }, ).then((value) { setState(() { isButtonActive = true; }); }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('총톤수'), ), body: Center( child: ElevatedButton( onPressed: isButtonActive ? () => showTimer(context) : null, child: const Text('총톤수'), ), ), ); } }
1条答案
按热度按时间brqmpdu11#
你可以用一个布尔状态来实现这个功能,我们称之为
isButtonActive
。按钮的启用/禁用取决于这个状态的值。当按钮被按下时,将状态设置为false,当对话框关闭时,将状态设置为true。下面是一个示例代码: