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(),
],
),
),
);
}

按下按钮时是否可以避免文本字段上的触摸波纹?