[英]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.