无法从TextField抖动中退出

问题描述 投票:0回答:1

我需要一个Box,在其中插入并存储一些用户输入的信息,我使用的是'TextField',所以我将'TextField'中的'maxLines'选项从默认值(1)更改为(2)当我想在此处插入一些文字时,我无法离开此框,因为“完成”按钮已更改为“返回”,阻止了我!键盘也被锁定。之所以这样做,是因为我想要一个带有一些文本(例如描述)的Box,可以将其移动到所需的位置并更改其所有属性。我的问题是文本字段全部写在一行中,我需要在文本字段的边框处换行。您知道如何更好地处理TextField吗?这是代码的一部分:

Widget build(BuildContext context) {
return new Scaffold(
    backgroundColor: Colors.white,
    body : Container(
      decoration: BoxDecoration(
          shape: BoxShape.rectangle,
          image: DecorationImage(
            image: _image == null
                ? AssetImage('assets/images/io.png')
                : FileImage(_image),  // here add your image file path,
          alignment: Alignment.topCenter,
          ),
         ),
      child: GestureDetector(
        child:Container(
          alignment: Alignment.center,
          child : ConstrainedBox(
             constraints: BoxConstraints(
               maxHeight: 400,
               maxWidth: 400,
                ),
              child: TextField(
                minLines: 1,
                 maxLines: 2,
                decoration: InputDecoration(
                  border: OutlineInputBorder(
                    borderRadius: BorderRadius.all(
                       const Radius.circular(48.0)
                    ),
                  ),
                labelText: 'Descrizione',
                labelStyle: TextStyle(
                   backgroundColor: Colors.white,
                  ),
                ),
              ),
          ),
        ),
      )
    )
);

P.S .:我正在研究这个'GestureDetector',我想它应该对此有用。

ios flutter mobile flutter-layout flutter-test
1个回答
0
投票

TextField中进入InputDecoration,然后将Widget添加到后缀属性。后缀属性是一个小部件,显示在Textfield的末尾。

FocusNode node = FocusNode();


TextField(
                minLines: 1,
                maxLines: 2,
                focusNode: node,
                decoration: InputDecoration(
                  suffix: RaisedButton(
                    onPressed: () {
                      node.unfocus();
                    },
                    child: Text("Done"),
                  ),
                  border: OutlineInputBorder(
                    borderRadius:
                        BorderRadius.all(const Radius.circular(48.0)),
                  ),
                  labelText: 'Descrizione',
                  labelStyle: TextStyle(
                    backgroundColor: Colors.white,
                  ),
                ),
              ),
© www.soinside.com 2019 - 2024. All rights reserved.