flutter - Flutter,如何解决“RenderBox 未布置:...NEEDS-PAINT”
问题描述
我正在尝试使用GridView.builder
并在每一行中显示一个孩子来显示一个列表......这是代码的一部分:
SafeArea(
child: Column(
children: [
Header(),
SizedBox(height: 20),
Expanded(child: SingleChildScrollView(child: Konten())),
],
),
)
和代码Konten()
:
Padding(
padding: const EdgeInsets.all(10),
child: GridView.builder(
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemCount: data.length,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 1,
crossAxisSpacing: 16,
mainAxisSpacing: 16,
childAspectRatio:
10
),
itemBuilder: (context, index) => Container(
alignment: Alignment.center,
child: Text(data[index]["API"]),
decoration: BoxDecoration(
color: Colors.amber, borderRadius: BorderRadius.circular(15)),
),
),
)
但我收到此错误:
════════ Exception caught by rendering library ═════════════════════════════════
Assertion failed:
../…/rendering/box.dart:1930
hasSize
"RenderBox was not laid out: RenderRepaintBoundary#0992d relayoutBoundary=up3 NEEDS-PAINT"
The relevant error-causing widget was
Column
lib/screen_utama.dart:18
════════════════════════════════════════════════════════════════════════════════
我使用的列表data
是来自 api 的数据...但是当我将数据更改为这个时,它不会显示错误:
List data=List.generate(10, (index) => {"id": index, "name": "Lowongan $index"})
.toList();
有没有办法解决这个问题?
解决方案
认为当您的数据为空时会发生这种情况。当没有数据可用时,您可以通过显示一个空的占位符来简单地修复它。
对于您的Konten
小部件,build
函数可能如下所示:
@override
Widget build(BuildContext context) {
if (data.isEmpty){
return Text('no content available');
}
return Padding(
padding: const EdgeInsets.all(10),
child: GridView.builder(
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemCount: data.length,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 1, crossAxisSpacing: 16, mainAxisSpacing: 16, childAspectRatio: 10, mainAxisExtent: 0),
itemBuilder: (context, index) => Container(
alignment: Alignment.center,
child: Text(data[index]["API"]),
decoration: BoxDecoration(color: Colors.amber, borderRadius: BorderRadius.circular(15)),
),
),
);
}
推荐阅读
- java - 单击Android Studio时未打开自定义3点菜单
- google-cloud-platform - 如何设置只能从 App Engine 标准环境连接的 Google CloudSQL 用户
- r - 如何从 df 列表中获取某个变量的 df 名称和第一个输入值
- reactjs - 如何从前端获取 EKS pod 的环境变量?
- ruby - 在 ruby 模块的上下文中,self.method 和常规方法有什么区别?
- javascript - 如何在 JavaScript 飞扬的小鸟代码中使用画布
- bash - 如果文件中有特定名称,则仅打印一次
- python - 如何在 Flask Marshmallow 中验证 Fields.Raw
- c++ - 我可以让 `std::ranges::views::elements` 在我的类型范围内工作吗
- tensorflow - Tensorflow“检测到的边缘创建循环”在适应的 keras 模型训练中