首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >颤振:如何关闭onSubmitted()上的TextField键盘而不丢失焦点

颤振:如何关闭onSubmitted()上的TextField键盘而不丢失焦点
EN

Stack Overflow用户
提问于 2021-04-09 22:35:28
回答 1查看 390关注 0票数 0

我有一个readonly = false小部件,在提交onSubmitted()之后,我想继续用onSubmitted()来关注这个TextField,但是同时我想最小化键盘或者关闭它,我不能使用

代码语言:javascript
复制
 FocusScope.of(context).requestFocus(new FocusNode()); 

代码语言:javascript
复制
 FocusScope.of(context).unfocus();

代码语言:javascript
复制
  SystemChannels.textInput.invokeMethod('TextInput.hide');
EN

回答 1

Stack Overflow用户

发布于 2021-04-10 08:32:11

当onSubmit被调用时,键盘将被禁用,因为readOnly是真的,但是TextField有焦点。但是当你点击TextField时,键盘就会出现,因为现在readOnly是假的,并且它已经有焦点了。

代码语言:javascript
复制
 class _MyAppState extends State<MyApp> {
      bool read = false;
    
      FocusNode focusNode = FocusNode();
    
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
            title: 'Flutter Demo',
            theme: ThemeData(
              primarySwatch: Colors.blue,
            ),
            home: Scaffold(
              body: Center(
                child: Container(
                  padding: EdgeInsets.all(10),
                  child: TextField(
                    onTap: () {
                      read = false;
                      setState(() {});
                    },
                    focusNode: focusNode,
                    readOnly: read,
                    cursorColor: Colors.blue,
                    onSubmitted: (val) async {
                      print(val);
                      read = true;
                      focusNode.requestFocus(new FocusNode());
                      setState(() {});
                    },
                  ),
                ),
              ),
            ));
      }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67029055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档