flutter - 如何在颤动的同一页面上向gridview添加其他组件
问题描述
...
if (snapshot.data == null) {
return Container(
child: Center(
child: Text("Loading..."),
));
} else {
return GridView.builder(
itemCount: snapshot.data.length,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 3),
itemBuilder: (context, index) => Card(
child: GridTile(
child: Center(
child: Text(snapshot.data[index].service_type),
),
)));
}
...
当这段代码执行时,结果如下,
在此,我需要在网格顶部添加一个图像组件。请帮助我实现这一目标。下图是预期的结果设计。
解决方案
在大列表上使用 shrinkWrap 是一种不好的做法,当您想要在其上方或下方使用扩展时,您应该将 GridView/ListView 包装起来,也不要嵌套这样的滚动视图。您应该改用 CustomScrollView 或 NestedScrollView。他们在文档中所说的。
收缩包裹滚动视图的内容比扩展到最大允许大小要昂贵得多,因为内容可以在滚动期间扩展和收缩,这意味着每当滚动位置发生变化时都需要重新计算滚动视图的大小。
推荐阅读
- python - Matplotlib:从保存的图像文件中删除未使用的边框区域
- laravel - 在上传 laravel 项目之前我应该删除什么?
- ruby-on-rails - 使用带有您最喜欢的 css 图标设置的 rails actiontext 扩展 Trix,例如 font-awesome
- if-statement - 条件函数的使用,定义中的条件
- java - 考虑到同步关键字的成本,使延迟初始化线程安全高效的技巧是什么?
- sql - pl/sql函数查找符合贷款条件的客户和贷款金额
- datetime - Flutter - 用我想醒来的小时确定睡觉的时间
- android - 从 Java 到 Kotlin 的代码转换后的异常:java.lang.ClassCastException: java.lang.String cannot be cast to com.example.misc.Restaurant
- windows - Windows 批处理:删除早于 N 的文件,但保留最后 M 个文件
- java - 我的数据库中的 java.lang.NullPointerException 错误