[英]A RenderFlex overflowed by 80 pixels on the bottom
该页面出现错误“RenderFlex 在底部溢出 80 像素”。 你怎么能修好它?
class FavNews extends StatelessWidget { final FavoritesController controller = Get.find(); FavNews({Key? key}): super(key: key); @override Widget build(BuildContext context) { return Obx(() { return SizedBox( height: MediaQuery.of(context).size.height, child: ListView.builder( itemCount: controller.news.length, itemBuilder: (BuildContext context, int index) { return FavNewsItem( article: controller.news.keys.toList()[index], index: index, ); }), ); }); } }
将其 Sizedbox 放在 SingleChildScrollView 小部件中。
return SingleChildScrollView(
child: SizedBox(
height: MediaQuery.of(context).size.height,
child: ListView.builder(
itemCount: controller.news.length,
itemBuilder: (BuildContext context, int index) {
return FavNewsItem(
article: controller.news.keys.toList()[index],
index: index,
);
}),)
就试一试吧。 它可能有效
问题在于您的 SizedBox 的高度。
MediaQuery.of(context).size.height
返回整个屏幕的高度,包括底部的状态栏、应用栏和系统手势。
使用ListView.builder
,您可以使用shrinkWrap: true
,它只会使用它实际需要使用的空间。
例子:
return SingleChildScrollView(
child: ListView.builder(
shrinkWrap: true,
itemCount: controller.news.length,
itemBuilder: (BuildContext context, int index) {
return FavNewsItem(
article: controller.news.keys.toList()[index],
index: index,
);
}),
),
);
使用滚动条时不要硬涂高度删除高度属性,它会工作得很好
final FavoritesController controller = Get.find();
FavNews({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Obx(() {
return SizedBox(
child: ListView.builder(
itemCount: controller.news.length,
itemBuilder: (BuildContext context, int index) {
return FavNewsItem(
article: controller.news.keys.toList()[index],
index: index,
);
}),
);
});
}
}```
你不需要sizedBox
return Obx(() {
return ListView.builder(
srinkWrap: true;
itemCount: controller.news.length,
itemBuilder: (BuildContext context, int index) {
return FavNewsItem(
article: controller.news.keys.toList()[index],
index: index,
);
}),);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.