我想将CachedNetworkImage
作为leading
内的ListTile
属性,并使其图像缩放以适合ListTile
的高度。如果不为CachedNetworkImage
指定固定高度,是否可以实现?
我现在所拥有的就是这个,看起来不错,但是使用了32px的固定高度。
return ListTile(
title: Text(record.title),
subtitle: Text(record.type),
leading: CachedNetworkImage(imageUrl: url, fit: BoxFit.scaleDown, height: 32),
onTap:_onListItemTap,
);
我不是固定尺寸的粉丝,但也许应该呢?我可以期望Flutter中的32px永远适合任何设备上的ListTile
吗?
还是有更好的方法来使我的图片大小动态调整为ListTile
的其他内容?
答案 0 :(得分:0)
通常期望ListTile的前导元素是图标,尽管您当然可以使用其他任何东西。但是,一种实现方法是使用IconTheme.of(context).size作为图像的大小,然后在主题中指定大小。这样,您可以从理论上根据应用程序顶级屏幕的大小来设置主题,并将其自动传播到您使用的任何位置。但是,大多数时候您不需要这样做,因为flutter会自动处理不同的屏幕DPI。
另一种可能的实现方式是在CachedNetworkImage周围使用AspectRatio小部件,以便宽度取决于ListTile的高度(对于ListTile的特定类型,该高度应恒定)。