【问题标题】:How to have a container fit it's child flutter如何让容器适合它的子扑动
【发布时间】:2022-11-23 01:33:38
【问题描述】:

我正在尝试在 Twitter 中复制我喜欢的功能。

从上面的图片中可以看出,Twitter 图片的宽度始终完全相同,但高度是相对于图片而言的。我已经能够使用 BoxFit.contain 半复制这个想法,但 Container 不适合图像。

我实施了什么]

Container(
  width: 290.0,
  // height: 400,
  constraints: const BoxConstraints(
    maxHeight: 350,
    minHeight: 150,
  ),
  decoration: BoxDecoration(
    color: Colors.red,
    borderRadius: BorderRadius.circular(27.5),
    image: DecorationImage(
      image: AssetImage(image[itemIndex]),
      fit: BoxFit.fitWidth,
    ),
    boxShadow: const [
      BoxShadow(
        color: Color(0x80000000),
        offset: Offset(0, 2.5),
        blurRadius: 5,
      ),
    ],
  ),
),

我尝试了一个 FittedBox,但没有成功。我尝试了 FractionallySizedBox 但一直出错! 如果有人能引导我朝着正确的方向前进,我将不胜感激!

【问题讨论】:

  • 试试fit: BoxFit.cover,
  • 而不是改变图像的分辨率......使容器动态......根据图像的最小和最大宽度,高度调整大小......或者只使用 fit:BoxFit.cover; in image object
  • @Nikhil 我认为这是朝着使容器动态化的正确方向迈出的一步

标签: flutter image flutter-layout containers


【解决方案1】:

您可以在 Container 上尝试固定宽度。但最重要的是使用fit: BoxFit.cover,

 Container(
  width: 290.0,
  // height: 400,
  constraints: const BoxConstraints(
    maxHeight: 350,
    minHeight: 150,
  ),
  decoration: BoxDecoration(
    color: Colors.red,
    borderRadius: BorderRadius.circular(27.5),
    image: DecorationImage(
      image: AssetImage(image[itemIndex]),
      fit: BoxFit.cover, //
    ),
    boxShadow: const [
      BoxShadow(
        color: Color(0x80000000),
        offset: Offset(0, 2.5),
        blurRadius: 5,
      ),
    ],
  ),
),

【讨论】:

  • BoxFit.cover 没有给我想要的效果。我希望红色容器缩小以适合图像。
  • 你能移除约束吗
  • 当我删除约束时,图像不会出现 b/c 没有高度。我希望高度是动态的,我认为 BoxConstraints 是正确的方法!
  • 我想我会用Image.asset("", width:imageWidth,fit:Boxfit.cover)
猜你喜欢
  • 2020-11-18
  • 2021-12-31
  • 2016-05-03
  • 2022-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多