使CachedNetworkImage缩放以适合ListTile的高度

时间:2019-02-08 07:42:02

标签: flutter flutter-layout

我想将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的其他内容?

1 个答案:

答案 0 :(得分:0)

通常期望ListTile的前导元素是图标,尽管您当然可以使用其他任何东西。但是,一种实现方法是使用IconTheme.of(context).size作为图像的大小,然后在主题中指定大小。这样,您可以从理论上根据应用程序顶级屏幕的大小来设置主题,并将其自动传播到您使用的任何位置。但是,大多数时候您不需要这样做,因为flutter会自动处理不同的屏幕DPI。

另一种可能的实现方式是在CachedNetworkImage周围使用AspectRatio小部件,以便宽度取决于ListTile的高度(对于ListTile的特定类型,该高度应恒定)。