为什么“图像”小部件无法在具有指定宽度和高度的容器中设置特殊的宽度和高度?

时间:2020-01-18 13:01:16

标签: flutter

为什么“图像”小部件无法在具有指定宽度和高度的容器中设置特殊的宽度和高度?

class HomeContent extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Center(
      child: Container(
        child: Image.network(
          "http://a1.att.hudong.com/60/38/01200000194369136323385641912.jpg",
          width: 20,
          height: 20,
        ),
        width: 400,
        height: 400,
        decoration: BoxDecoration(
          color: Colors.yellow,
        ),
      ),
    );
  }
}

结果是这样的,您看到容器中的图像占据了400.0而不是20的宽度。

enter image description here


EDIT-01

我尝试使用MediaQuery设置图片的宽度和高度,但是没有效果。

class HomeContent extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Center(
      child: Container(
        child: Image.network(
          "http://a1.att.hudong.com/60/38/01200000194369136323385641912.jpg",
          width: MediaQuery.of(context).size.height/2,
          height: MediaQuery.of(context).size.height/2,
        ),
        width: 400,
        height: 400,
        decoration: BoxDecoration(
          color: Colors.yellow,
        ),
      ),
    );
  }
}

3 个答案:

答案 0 :(得分:0)

媒体查询用于heightWidth

height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width,

并像这样实现

class HomeContent extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Center(
      child: Container(
        child: Image.network(
          "http://a1.att.hudong.com/60/38/01200000194369136323385641912.jpg",
          width: width,
          height: height,
        ),
        width: 400,
        height: 400,
        decoration: BoxDecoration(
          color: Colors.yellow,
        ),
      ),
    );
  }
}

答案 1 :(得分:0)

您应该首先设置容器的常量:

例如设置alignment

class HomeContent extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Center(
      child: Container(
        child: Image.network(
          "http://a1.att.hudong.com/60/38/01200000194369136323385641912.jpg",
          width: 20,
          height:20,
        ),
        width: 400,
        height: 400,
        decoration: BoxDecoration(
          color: Colors.yellow,
        ),
        alignment: Alignment.center,
      ),
    );
  }
}

答案 2 :(得分:0)

for indx, y in enumerate(parm): plt.subplot(1, len(parm), indx) sns.countplot(x=y, data=azdias_under_20) plt.show() 上的宽度和高度设置子项的Containerwidth约束,此时子项上的heightwidth是无能为力。因此,您可以使用另一个小部件并将Image放置在其中。例如,我可以使用height

Center

它会按预期工作