颤振:图像 BoxFit.cover 在堆栈中不起作用

Posted

技术标签:

【中文标题】颤振:图像 BoxFit.cover 在堆栈中不起作用【英文标题】:Flutter: Image BoxFit.cover doesnt work in Stack 【发布时间】:2019-04-21 06:17:03 【问题描述】:

我希望两个图像在网格视图中相互堆叠,并且都显示一个

图像女巫覆盖了整个瓷砖。

但是当我添加堆栈小部件时,图像的行为就像没有

适合: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();
       
 

Gridtile(widgetsList 中的小部件):

@override
  Widget build(BuildContext context) 
    return new Stack(
      children: <Widget>[
        new CustomImage(compareTime: lastUpdatedPictureTime),
        new CustomImage(compareTime: lastUpdatedIconTime)
      ],
    );
  

我的 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);
  

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

【问题讨论】:

我会尝试使用Positioned - 最有可能使用Positioned.fill @pskink 是的,这行得通:) thx 当然,不客气 【参考方案1】:

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

@override
Widget build(BuildContext context) 
  return new Stack(
    fit: StackFit.expand,
    children: <Widget>[
      new CustomImage(compareTime: lastUpdatedPictureTime),
      new CustomImage(compareTime: lastUpdatedIconTime)
    ],
  );

这对我有用:)

【讨论】:

以上是关于颤振:图像 BoxFit.cover 在堆栈中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥这个切换按钮在颤振 - 飞镖中不起作用?

谷歌字体包在颤振中不起作用

滑动以返回在 ios 中的颤振 webview 中不起作用

颤振热重新加载在android studio(mac)中不起作用

颤振布局问题:堆栈 z 顺序不起作用

权限在颤振发布 apk 中不起作用