Flutter 仅将焦点放在文本字段中的图标按钮上
我有一个Flutter 仅将焦点放在文本字段中的图标按钮上,flutter,dart,Flutter,Dart,我有一个TextFormField用于密码输入,带有一个IconButton,它可以切换obscratetext。我希望这样,当点击按钮时,文本字段不会聚焦。然而,情况并非如此。我想这与FocusNode有关 ValueListenableBuilder( valueListenable:\u obsolizeText, 生成器:(上下文、模糊文本、子项)=>TextFormField( 蒙蔽文本:蒙蔽文本, 装饰:输入装饰( 后缀:图标按钮( 图标:图标(遮挡文字?图标.visibility\
TextFormField
用于密码输入,带有一个IconButton
,它可以切换obscratetext
。我希望这样,当点击按钮时,文本字段不会聚焦。然而,情况并非如此。我想这与FocusNode
有关
ValueListenableBuilder(
valueListenable:\u obsolizeText,
生成器:(上下文、模糊文本、子项)=>TextFormField(
蒙蔽文本:蒙蔽文本,
装饰:输入装饰(
后缀:图标按钮(
图标:图标(遮挡文字?图标.visibility\u关闭:图标.visibility),
按下时:()=>\u obsolizeText.value=!obsolizeText,
),
),
),
),
有人知道解决方案吗?您只需要
FocusNode.unfocus()
在onPressed()
方法中的setState
之后调用它
输出:
完整解决方案:
bool obscureText = false;
FocusNode _focusNode = FocusNode();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Padding(
padding: const EdgeInsets.all(24.0),
child: Column(
children: <Widget>[
TextFormField(
focusNode: _focusNode,
obscureText: obscureText,
decoration: InputDecoration(
suffixIcon: IconButton(
icon: Icon(obscureText ? Icons.visibility_off : Icons.visibility),
onPressed: () {
setState(() => obscureText = !obscureText);
Timer.run(() => _focusNode.unfocus());
},
),
),
),
TextField(),
],
),
),
);
}
bool obscureText=false;
FocusNode_FocusNode=FocusNode();
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(),
主体:填充物(
填充:常数边集全部(24.0),
子:列(
儿童:[
TextFormField(
focusNode:_focusNode,
蒙蔽文本:蒙蔽文本,
装饰:输入装饰(
后缀:图标按钮(
图标:图标(遮挡文字?图标.visibility\u关闭:图标.visibility),
已按下:(){
setState(()=>obscureText=!obscureText);
Timer.run(()=>_focusNode.unfocus());
},
),
),
),
TextField(),
],
),
),
);
}
按下按钮时是否可以避免文本字段上的触摸波纹?