Flutter:Image BoxFit.cover 在 Stack 中不起作用

Lep*_*yte 9 android ios firebase flutter

我想要两个图像在 gridview 中相互堆叠,并且都显示一个

图像女巫覆盖整个瓷砖。

但是当我添加 stackwidget 时,图像的行为就像没有

适合:BoxFit.cover

在其构建方法中。

我的 GridView 的构建方法:

@override
Widget build(BuildContext context) {
    if (widgetsList.length != 0) {
      return new GridView.count(
        primary: false,
        crossAxisCount: 2,
        children: widgetsList,
      );
    } else {
      return Container();
    }   
} 
Run Code Online (Sandbox Code Playgroud)

Gridtile(widgetsList 中的小部件):

@override
  Widget build(BuildContext context) {
    return new Stack(
      children: <Widget>[
        new CustomImage(compareTime: lastUpdatedPictureTime),
        new CustomImage(compareTime: lastUpdatedIconTime)
      ],
    );
  }
Run Code Online (Sandbox Code Playgroud)

我的 CustomImage 的构建方法:

@override
  Widget build(BuildContext context) {
    var img = imageBytes != null
        ? Image.memory(
            imageBytes,
            fit: BoxFit.cover,
          )
        : Text(errorMsg != null ? errorMsg : "Loading...");
    return new Container(child: img);
  }
Run Code Online (Sandbox Code Playgroud)

当我不使用堆栈并且每个 Gridtile 只使用一个 CustomImage 时,它​​可以工作。所以也许这是一个错误?

小智 14

尝试在您的 Stack 小部件中添加这一行:

@override
Widget build(BuildContext context) {
  return new Stack(
    fit: StackFit.expand,
    children: <Widget>[
      new CustomImage(compareTime: lastUpdatedPictureTime),
      new CustomImage(compareTime: lastUpdatedIconTime)
    ],
  );
}
Run Code Online (Sandbox Code Playgroud)

这对我有用:)