我正在构建一个聊天应用程序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)
],
)
],
))
答案是将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选项运行以获得