【问题标题】:Resize TextField based on content in Flutter根据 Flutter 中的内容调整 TextField 的大小
【发布时间】:2019-09-26 18:33:09
【问题描述】:

如何根据 Flutter 中的内容自动调整 TextField 的宽度?

根据内容自动调整大小的 3 个 TextField 的示例:

【问题讨论】:

    标签: flutter textfield


    【解决方案1】:

    仅将TextField 放在Expanded 中,row 中。

    return Scaffold(
          body: Container(
              padding: EdgeInsets.only(top: 50),
              child: new Column(
                  mainAxisAlignment: MainAxisAlignment.start,
                  crossAxisAlignment: CrossAxisAlignment.center,
                  children: <Widget>[
                    new Row(
                      crossAxisAlignment: CrossAxisAlignment.center,
                      mainAxisAlignment: MainAxisAlignment.center,
                      children: <Widget>[
                        new Expanded(
                            child: Padding(
                          child: new TextField(
                            onTap: () {//action of TextField
                            },
                            keyboardType: TextInputType.text,
                            decoration: InputDecoration(
                                border: InputBorder.none, hintText: 'Password'),
                            style: Theme.of(context).textTheme.body1,
                          ),
                          padding: EdgeInsets.only(left: 40),
                        )),
                        IconButton(
                          icon: Icon(Icons.apps),
                          onPressed: () {//action of iconbutton
                          },
                        )
                      ],
                    )
                  ])),
        );
    

    【讨论】:

    • 感谢您的回答,但我认为这不是我想要的,我已经编辑了我的帖子,并附上了我想要做的示例。
    【解决方案2】:

    将 TextField 的 maxLines 属性设置为 null。最大线数:空

                TextField(
                  controller: new TextEditingController(
                    text: comment
                  ),
                  maxLines: null,
                  style: TextStyle(
                    color: Colors.black,
                    fontSize: 12.0,
                  ),
                  textAlign: TextAlign.left,
                  decoration: InputDecoration(
                    filled: true,
                    fillColor: HexColor('#ecedec'),
                    border: OutlineInputBorder(
                      borderSide:BorderSide.none,
                      borderRadius: BorderRadius.all(Radius.circular(10.0)),
                    ),
                  ),
                )
    

    【讨论】:

      【解决方案3】:

      我找到了使用 IntrinsicWidth 类的解决方案

      IntrinsicWidth(
        child: TextField(...
      ),
      

      【讨论】:

        【解决方案4】:

        您可以为此使用 auto_size_text_field 依赖项。

        AutoSizeTextField

        【讨论】:

          猜你喜欢
          • 2012-02-09
          • 2010-09-14
          • 1970-01-01
          • 1970-01-01
          • 2014-04-29
          • 2011-09-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多