Flutter 底部的RenderFlex溢出1443像素
我正在努力使它可以滚动。。。由于某些原因,它没有滚动,我尝试添加singleChildScrollview仍然不工作。。。。请看图片以便更好地理解。。。所以我发布了完整的代码以便你们能更好地帮助我。。。这就是我得到的错误“考虑应用弹性系数(例如,使用扩展的小部件)迫使ReDeFrEX的孩子适应于可用的空间,而不是将它们的大小与它们的自然大小相匹配。这被认为是一个错误条件,因为它指示有不可见的内容。如果内容合法地大于可用空间,则考虑在剪辑之前剪辑它。在flex中,或使用可滚动容器而不是flex,如ListView。“Flutter 底部的RenderFlex溢出1443像素,flutter,Flutter,我正在努力使它可以滚动。。。由于某些原因,它没有滚动,我尝试添加singleChildScrollview仍然不工作。。。。请看图片以便更好地理解。。。所以我发布了完整的代码以便你们能更好地帮助我。。。这就是我得到的错误“考虑应用弹性系数(例如,使用扩展的小部件)迫使ReDeFrEX的孩子适应于可用的空间,而不是将它们的大小与它们的自然大小相匹配。这被认为是一个错误条件,因为它指示有不可见的内容。如果内容合法地大于可用空间,则考虑在剪辑之前剪辑它。在flex中,或使用可滚动容器而不是flex,如
import'package:cached_network_image/cached_network_image.dart';
进口“包装:颤振/材料.省道”;
导入“包:memoryblog/helper/authenticate.dart”;
导入“包:memoryblog/services/auth.dart”;
导入“包:memoryblog/services/database.dart”;
导入“package:memoryblog/views/create_blog.dart”;
类MemoryRoom扩展StatefulWidget{
@凌驾
_MemoryRoomState createState();
}
类_MemoryRoomState扩展状态{
AuthMethod AuthMethod=新的AuthMethod();
DatabaseMethods databaseMethod=新的DatabaseMethods();
流博客流;
Widget BlogsList(){
返回容器(
子:blogsStream!=null?列(
儿童:[
StreamBuilder(
流:blogsStream,
生成器:(上下文,快照){
if(snapshot.data==null)返回CircularProgressIndicator();
返回ListView.builder(
填充:边缘组。对称(水平:16),
itemCount:snapshot.data.documents.length,
收缩膜:对,
itemBuilder:(上下文,索引){
返回博客栏(
authorName:snapshot.data.documents[index].data['memoryName'],
标题:快照.data.documents[index].data['title'],
描述:快照.data.documents[index].data['desc'],
imgUrl:snapshot.data.documents[index].data['imgUrl'],
);
}
);
},
)
],
):容器(
对齐:对齐.center,
子对象:CircularProgressIndicator(),
)
);
}
@凌驾
void initState(){
//TODO:实现initState
databaseMethod.getData().then((结果){
设置状态(){
blogsStream=结果;
});
});
super.initState();
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:世界其他地区(
儿童:[
正文(
“内存”
),
正文(
“博客”,
样式:TextStyle(
颜色:颜色。蓝色
),
)
],
),
背景颜色:颜色。透明,
标高:0.0,
行动:[
手势检测器(
onTap:(){
authMethod.signOut();
Navigator.pushReplacement(上下文,materialpage路径(
生成器:(上下文)=>Authenticate()
));
},
子:容器(
填充:边缘组。对称(水平:16),
子:图标(图标.电源设置\u新建)),
)
],
),
正文:BlogsList(),
浮动操作按钮:容器(
填充:边缘组。对称(垂直:20),
孩子:排(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
浮动操作按钮(
已按下:(){
Navigator.push(上下文、MaterialPage路由)(
生成器:(上下文)=>CreateBlog()
));
},
子:图标(Icons.add),
)
],
),
),
);
}
}
类BlogsTile扩展了无状态小部件{
字符串imgUrl、标题、描述、authorName;
BlogsTile({@required this.imgUrl、@required this.title、@required this.description、@required this.authorName,});
@凌驾
小部件构建(构建上下文){
返回容器(
页边距:仅限边集(底部:16),
身高:170,
子:堆栈(
儿童:[
ClipRRect(
边界半径:边界半径。圆形(6),
子:CachedNetworkImage(
imageUrl:imgUrl,
宽度:MediaQuery.of(context).size.width,
适合:BoxFit.cover,
)
),
容器(
身高:170,
装饰:盒子装饰(
颜色:颜色。黑色45。不透明度(0.3),
边界半径:边界半径。圆形(6)
),
),
容器(
宽度:MediaQuery.of(context).size.width,
子:列(
mainAxisAlignment:mainAxisAlignment.center,
crossAxisAlignment:crossAxisAlignment.center,
儿童:[
正文(
标题
textAlign:textAlign.center,
样式:TextStyle(fontSize:25,fontWeight:fontWeight.w500),
),
尺寸箱(高度:4,),
正文(
描述
textAlign:textAlign.center,
样式:TextStyle(fontSize:17,fontWeight:fontWeight.w400),
),
尺寸箱(高度:4,),
文本(authorName)
],
),
)
],
),
);
}
}
使用ListView代替列。或
使用SingleChildScrollView包装列返回容器(
return Container(
child: blogsStream != null
? ListView(
children: <Widget>[
StreamBuilder(
stream: blogsStream,
builder: (context, snapshot) {
if (snapshot.data == null) return CircularProgressIndicator();
return ListView.builder(
padding: EdgeInsets.symmetric(horizontal: 16),
itemCount: snapshot.data.documents.length,
shrinkWrap: true,
itemBuilder: (context, index) {
return BlogsTile(
authorName:
snapshot.data.documents[index].data['memoryName'],
title: snapshot.data.documents[index].data['title'],
description:
snapshot.data.documents[index].data['desc'],
imgUrl: snapshot.data.documents[index].data['imgUrl'],
);
});
},
)
],
)
: Container(
alignment: Alignment.center,
child: CircularProgressIndicator(),
),
子:blogsStream!=null
?列表视图(
奇尔德
return Container(
child: blogsStream != null
? ListView(
children: <Widget>[
StreamBuilder(
stream: blogsStream,
builder: (context, snapshot) {
if (snapshot.data == null) return CircularProgressIndicator();
return ListView.builder(
padding: EdgeInsets.symmetric(horizontal: 16),
itemCount: snapshot.data.documents.length,
shrinkWrap: true,
itemBuilder: (context, index) {
return BlogsTile(
authorName:
snapshot.data.documents[index].data['memoryName'],
title: snapshot.data.documents[index].data['title'],
description:
snapshot.data.documents[index].data['desc'],
imgUrl: snapshot.data.documents[index].data['imgUrl'],
);
});
},
)
],
)
: Container(
alignment: Alignment.center,
child: CircularProgressIndicator(),
),