当前位置: 首页 > 知识库问答 >
问题:

flutter:带有TextField/TextFormField

宋丰
2023-03-14

在我们的部分应用程序中,我希望在bottomsheet中有一个简单的表单,就像下面的代码一样。不幸的是,当我把它放进去的时候,我得到了一个错误

在performLayout()期间抛出了以下断言:通常由TextField创建的InputDecorator不能具有无界宽度。当父小部件没有提供有限宽度约束时,就会发生这种情况。例如,如果InputDecorator包含在行中,则必须约束其宽度。可以使用扩展的小部件或SizedBox来约束InputDecorator或包含它的TextField的宽度。“package:flutter/src/material/input_decorator.dart”:断言失败:第881行位置7:“layoutconstraints.maxwidth

我的已实现代码:

  void _settingModalBottomSheet(context){
    showModalBottomSheet(
        context: context,
        elevation: 8.0,
        builder: (BuildContext bc){
          return Directionality(
            textDirection: TextDirection.rtl,
            child: ConstrainedBox(
              constraints: BoxConstraints(
                minHeight: 250.0
              ),
              child: Container(
                padding: EdgeInsets.fromLTRB(0.0,10.0,0.0,10.0),
                child: new Wrap(
                  children: <Widget>[
                    Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Center(
                        child: Text(
                          'please fill this form',
                          style: TextStyle(
                            fontSize: 13.0,
                          ),
                        ),
                      ),
                    ),
                    Divider(),
                    Row(
                      mainAxisAlignment: MainAxisAlignment.center,
                      crossAxisAlignment: CrossAxisAlignment.center,
                      children: <Widget>[
                        Column(
                          children: <Widget>[
                            Text('item 1'),
                            Container(
                              child: TextField(),
                            )
                          ],
                        ),
                        Column(
                          children: <Widget>[
                            Text('item 2'),
                            Container(
                              child: TextField(),
                            )
                          ],
                        ),

                      ],
                    ),
                  ],
                ),
              ),
            ),
          );
        }
    );
  }

共有1个答案

澹台承载
2023-03-14

您必须为文本字段提供特定的宽度,只需在容器中提供宽度或在展开中包装

解决方案1

Container(
  width: 100, // do it in both Container
  child: TextField(),
),

解决方案2

Row(
  mainAxisAlignment: MainAxisAlignment.center,
  crossAxisAlignment: CrossAxisAlignment.center,
  children: <Widget>[
    Expanded( // wrap your Column in Expanded
      child: Column(
        children: <Widget>[
          Text('item 1'),
          Container(child: TextField()),
        ],
      ),
    ),
    Expanded( // wrap your Column in Expanded
      child: Column(
        children: <Widget>[
          Text('item 2'),
          Container(child: TextField()),
        ],
      ),
    ),
  ],
),
 类似资料:
  • autocomplete_textfield An autocomplete textfield for flutter pull requests Feel free to submit pull requests for desired changes / features / bug fixes... It makes the maintenance of this code much ea

  • 我想在不导入材料主题的情况下将提示文本添加到。到目前为止,我尝试将与混合,如下所示: 这将导致以下错误:

  • 大家好,我在使用flutter的textField里面的focusNode焦点时碰到一个奇怪的问题 具体出现流程是这样的,点击textField输入框,小键盘弹出,点击页面空白处,让键盘自动关闭,再点击textField同一行的非输入的任意地方,这时再点击输入行弹出的键盘右下角,下一个按钮,的时候会提示这个错误 目前是如果不加onEditingComplete,就会报第二个图片的错误,加上就能解决

  • 问题内容: 我正在使用Flutter SDK开发应用程序。当我使用一个TextField小部件,而我关注它,下划线变成蓝色。我需要这种颜色变为红色,我该怎么办呢? 我需要更改的屏幕截图。我只想更改下划线,而不要更改标签颜色。 问题答案: 尽管这些其他答案可能会以某种方式起作用,但您绝对不应使用它。这不是在Flutter中获得自定义主题的正确方法。 一个更优雅的解决方案如下: 同时,如果你只是想显示

  • 编辑:对于尚未使用JavaFX的用户:当用户只输入一个字符时,将调用方法check(String text)。所以结果也应该是真的,当有1到5个数字时。但不会更多;-)

  • 我正在我的flutter应用程序中实现一个DraggableScrollableSheet,并希望有一个粘性头,即只有列表视图滚动,工作表的顶部部分始终保持不变。我的小部件如下所示: 基本功能可以工作,但是,只有在拖动/滚动列表视图项时,工作表才是可拖动和可滚动的。我需要做什么更改来使列中的其他小部件也是可滚动的。我尝试了滚动和拖动小部件没有解决方案。 感谢任何帮助。