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

颤振行在构建时消失?

孟雪风
2023-03-14

我正在构建一个聊天应用程序flutter页面,我的Textfield/Send按钮行不断消失,我得到以下错误...

'package:flutter/src/rendering/box.dart':断言失败:第1446行pos 12:'havs size':RenderBox未布局:renderpointerlistener#da9fd needs-layout needs-paint

该页面构建良好,没有textfield/send行,可以适当地显示我的信息,但当我添加它时会出错。下面是我的代码,包含在我的有状态小部件的脚手架中...

body: new Container(
          margin: new EdgeInsets.all(10.0),
          child: new Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              new Flexible(
                  child: new FirebaseAnimatedList(
                      query: fb.child('users').limitToLast(50),
                      padding: new EdgeInsets.all(5.0),
                      reverse: true,
                      itemBuilder: (_, DataSnapshot snapshot, Animation<double> animation, int index){

                        return new ChatMessage(
                            snapshot: snapshot,
                            animation: animation
                        );

                      })
              ),
              new Divider(height: 16.0, color: Colors.blue,),
              new Padding(padding: new EdgeInsets.all(10.0)),
              new Row(
                mainAxisAlignment: MainAxisAlignment.center,
                mainAxisSize: MainAxisSize.max,
                children: <Widget>[
                  new IconButton(icon: new Icon(Icons.gif), onPressed: null),
                  new Padding(padding: new EdgeInsets.all(3.0)),
                  new TextField(
                      decoration:
                      new InputDecoration(labelText: "CHAT HERE!!"),
                      controller: _searchController,
                      onSubmitted: (str) {
                        setState(() {
                          str = _searchController.text;
                        });
                      }),
                  new IconButton(icon: new Icon(Icons.send), onPressed: null)
                ],
              )

            ],
          ))

共有1个答案

商同
2023-03-14

答案是将TextField包装成一个灵活的。现在似乎很明显,但有时需要灵活或扩展,有时不需要。这是我的代码...

child: new Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              new Flexible(
                child: new FirebaseAnimatedList(
                    query: fb.child('users').limitToLast(50),
                    padding: new EdgeInsets.all(5.0),
                    reverse: true,
                    itemBuilder: (_, DataSnapshot snapshot,
                        Animation<double> animation, int index) {
                      return new ChatMessage(
                          snapshot: snapshot, animation: animation);
                    }),
              ),
              new Divider(
                height: 5.0,
                color: Colors.blue,
              ),
              new Container(
                margin: const EdgeInsets.symmetric(horizontal: 2.0),
                child: new Row(
                  children: <Widget>[
                    new IconButton(
                        icon: new Icon(Icons.gif), onPressed: getGif),
                    new Flexible(
                      child: new TextField(
                        controller: _chatController,
                        autocorrect: false,
                        decoration: new InputDecoration(
                            labelText: "Let's Talk ... ",
                            labelStyle:
                                new TextStyle(fontWeight: FontWeight.bold)),
                        onChanged: (str) {
                          setState(() {
                            str = _chatController.text;
                          });
                        },
                      ),
                    ),
                    new IconButton(
                        icon: new Icon(Icons.send), onPressed: getGif),
                  ],
                ),
              )
            ],
          )
 类似资料:
  • 注意:使用-Xlint重新编译:详细信息请参阅弃用。D8:程序类型已存在:android。支持v4.os。ResultReceiver$MyResultReceiver 失败:构建失败,但有例外。 > 错误:任务执行失败:应用程序:transformDexArchiveWithExternalLibsDexMergerForDebug”。 通用域名格式。Android建设者德兴。DexArchiv

  • 不能做颤振运行。颤振医生可以做什么?(颤振版本2.8.1) 执行失败org.gradle.cache.internal.AsyncCacheAccessDecoratedCache$2@7c56f8f1.java.lang.OutOfMemoryError:Java堆空间

  • 我希望能够在小部件完成构建/加载后运行功能,但我不确定如何运行。 我目前的用例是检查用户是否经过身份验证,如果没有,则重定向到登录视图。我不想在登录视图或主视图之前检查并推送,它需要在主视图加载后发生。 有什么我可以用的吗?

  • 现在在主频道上,我切换到beta频道,然后我运行flutter升级,发现我不能使用Linux作为设备,所以我切换回主分支,我运行flutter升级。然后我开始得到这些错误: 我假设问题是Dart SDK升级了,如果我可以回滚到与依赖项兼容的版本,它应该工作,或者依赖项应该被审查。

  • 我尝试将连接添加到我的Flutter项目中,我的主要目标是首先支持Android。当我添加ssh2包时,我得到了一个错误。我将遵循以下步骤: ,其输出是: 按'play'按钮输出是: 失败:生成失败,出现异常“任务执行失败”:ssh2:compileDebugJavaWithJavac。无法解析配置的所有文件:ssh2:debugCompileClasspath。无法转换BC prov-JDK 1

  • 失败:生成失败,出现异常。 > 错误:任务:app:compileFlutterBuildRelease的执行失败。 处理“命令”C:\Users\LEGION\flatter\u windows\u 2.2.3-stable\flatter\bin\flatter。bat“”以非零退出值1结束 尝试:使用--stacktrac选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得