dart - 如何根据父元素调整图像大小?
问题描述
你们如何根据父元素的高度和宽度保持图像大小?从我当前的代码中,我得到图像溢出错误。我没有为网格指定任何高度/宽度,我希望有一种方法可以覆盖整个网格空间,并自行调整大小。
现在 Grid 已经自动将自己划分为列和行。
GridView.builder(
controller: _scrollController,
scrollDirection: Axis.vertical,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
),
itemCount: snapitem.length,
itemBuilder: (context, int index) {
return InkWell(
child: Card(
child: Column(
children: <Widget>[
GridTile(
child: CachedNetworkImage(
imageUrl: snapitem[index].poster.toString(),
placeholder: Center(
child: CircularProgressIndicator(),
),
errorWidget: Icon(Icons.broken_image),
fit: BoxFit.fill,
),
),
ButtonTheme.bar(
child: ListTile(
title: Text(
snapitem[index].title,
style: TextStyle(
color: Colors.white,
fontWeight: FontWeight.w700,
),
),
),
)
],
),
),
splashColor: Colors.deepPurpleAccent,
);
},
);
我想要实现的是
我想要 Grid 一张卡片,在每张卡片上都有一张图片,底部有 ListTile
解决方案
它不是 MediaQuery(),它告诉你设备的屏幕尺寸。
第一个问题,如果您不使用页眉或页脚,为什么要使用 GridTile?从 grid_tile.dart :
if (header == null && footer == null)
return child;
因此,除非您打算添加页眉或页脚,否则请摆脱 GridTile。下一个...
由于您的 CachedNetworkImage 现在是 Column 的直接子级,因此您可以将其包装在 Expanded 中。这将忽略来自 CachedNetworkImage 的任何大小信息,并将其放入可用空间中。
请参阅 https://docs.flutter.io/flutter/widgets/Expanded-class.html 和 Image Scale type center crop on flutter?
有关 Flutter 的更多帮助,请务必查看 Medium 上的 Flutter 社区https://medium.com/flutter-community以及我们每周三在https://medium.com/flutter-community/flutterqanda/home上的实时帮助会议
推荐阅读
- typescript - 需要使用接口的属性来指定重载函数的类型
- javascript - 有没有办法在不使用行索引的情况下唯一地标识 Tabulator 中的嵌套行?
- vue.js - 使用嵌套命名槽时 Vue 2.x 反应性中断
- c# - 如何使datagridview可点击以将数据提取到c#中的文本框
- angular - 构建 Angular 代码源以做出贡献时出错
- javascript - 我想根据孩子的变化来更新父母反应原生
- python - 按重复范围折叠熊猫数据框
- python - 如何使用 Python 读取 Invoice 的图像文本
- javascript - 如何在Javascript中使用空/空元素映射数组
- spring-boot - 在 Spring Boot 应用程序中找不到属性