Flutter Web中iPhone/iPad点击TextField时Dialog自动关闭问题求助
问题:Flutter Web中iOS设备上AlertDialog点击TextField后自动关闭
在Flutter Web环境下,实现了一个包含登录表单的AlertDialog,但在iPhone或iPad上点击其中的TextField唤起键盘时,Dialog会自动关闭。该问题在iOS或Android原生Flutter应用中并未出现。曾怀疑是控制器导致组件重建,但移除控制器后问题依然存在,使用Modal时也有类似问题。
相关代码如下:
showDialog( context: context, barrierDismissible: false, builder: (BuildContext context) { return AlertDialog( title: const Text('AlertDialog Title'), content: SingleChildScrollView( child: ListBody( children: <Widget>[ TextFormField( autofocus: true, decoration: InputDecoration( hintText: 'Email', hintStyle: TextStyle(fontSize: 14), prefixIcon: Icon(Icons.email), contentPadding: EdgeInsets.symmetric(horizontal: 10, vertical: 12), border: OutlineInputBorder( borderRadius: BorderRadius.circular(14), borderSide: BorderSide(width: 1, style: BorderStyle.solid), ), filled: true, fillColor: colorInputField, enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(14), borderSide: BorderSide( color: colorBackgroundSecondary, width: 1, ), ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(14), borderSide: BorderSide( color: colorPrimary, width: 1, ), ), ), keyboardType: TextInputType.emailAddress, validator: (value) { if (value == null || value.isEmpty || !value.contains('@')) { return 'Please enter a valid email address'; } return null; }, controller: emailController, ), ], ), ), actions: <Widget>[ TextButton( child: const Text('Approve'), onPressed: () { Navigator.of(context).pop(); }, ), ], ); }, );
内容的提问来源于stack exchange,提问作者Volodymyr Lekhman
相关产品推荐
相关产品推荐

