当我点击文本表单字段内的后缀图标时,防止文本表单字段的焦点



当我按下按钮时,TextFormField将聚焦并出现键盘。如何解决这个问题?
代码如下:

TextFormField(
controller: code,
focusNode: codeFocus,
decoration: InputDecoration(
labelText: 'verify code',
prefixIcon: Icon(Icons.sms),
suffixIcon: FlatButton(
onPressed:(){}
child: Text('send sms'),
textTheme: ButtonTextTheme.primary,
),
),
keyboardType: TextInputType.number,
),
focusNode: codeFocus,
)

你可以像这样使用堆栈。

Stack(
alignment: Alignment.centerRight,
children: <Widget>[
TextFormField(
decoration: InputDecoration(
labelText: 'verify code',
prefixIcon: Icon(Icons.sms),
),
keyboardType: TextInputType.number,
),
FlatButton(
onPressed: () {},
textTheme: ButtonTextTheme.primary,
child: Text('send sms'),
),
],
)

顺便说一下,几天前也问过同样的问题......

点击后缀图标时使用此功能。

() {
// This will help to wait for TextField to get focus before
// we unfocus but it will happen fast so that you won't notice.
Future.delayed(Duration.zero, () {
_yourInputFocusNode.unfocus();
// Your implementation to run when tap suffixIcon in TextField
});
},

TextFormField(
focusNode: _phoneNumberFocusNode,
decoration: InputDecoration(
suffixIcon: IconButton(
icon: Icon(Icons.contacts),
onPressed: () {
Future.delayed(Duration.zero, () {
_phoneNumberTwoFocusNode.unfocus();
Navigator.pushNamed(context, 'Contacts');
});
},
),
),
),

最新更新