Flutter Contaner设置图片为背景,解决图片不能铺满的情况

本文介绍了在Flutter中使用Container设置图片为背景时遇到的无法铺满屏幕的问题。通过在Image.asset中添加特定代码,成功实现了背景图片全屏显示。详细代码和解决方案可供参考。

效果图如下:

在这里插入图片描述
左右两边的黑色请忽略,绿色的图片是一张背景图,

一开始实现的效果图:

在这里插入图片描述
图片总是铺不满,以为是stack嵌套的问题,又以为是container的其他问题,即使Image.asse中设置了fit: BoxFit.cover,一直不满屏,

解决

主要是在images中添加了下面两行代码:

width: double.infinity,
height: double.infinity

试了很多其他方法都不信,这个才是答案,

整个代码:

  Widget _buildRoot() {
    return Container(
      child: Column(
        children: <Widget>[
          _buildHeadGroup(),
          _buildHeadMember(),
          SizedBox(height: 10,),
        ],
      ),
    );
  }

  Widget _buildHeadGroup() {
    return Stack(
      children: <Widget>[
        Container(
          color: Colors.orange,
          height: 100,
          child: Image.asset(Util.getImgPath("small_room_detail_head_bg"),
              fit: BoxFit.cover,
              width: double.infinity,
              height: double.infinity),
        ),
        Container(
          margin: EdgeInsets.only(left: 15, top: 20, bottom: 20),
          child: Row(
            children: <Widget>[
              Container(
                width: 60,
                height: 60,
                child: ClipRRect(
                  borderRadius: BorderRadius.circular(4),
                  child: FadeInImage.assetNetwork(
                    placeholder:
                        "https://csdnimg.cn/pubfooter/images/edu-QR.png",
                    image: "https://csdnimg.cn/pubfooter/images/edu-QR.png",
                    fit: BoxFit.cover,
                  ),
                ),
              ),
              Container(
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: <Widget>[
                    Text(
                      "名企校招交流",
                      style: TextStyle(fontSize: 16, color: Colors.white),
                    ),
                    Row(
                      children: <Widget>[
                        Icon(
                          Icons.comment,
                          color: Colors.white,
                        ),
                        Text(
                          "45667",
                          style: TextStyle(color: Colors.white, fontSize: 12),
                        ),
                        Icon(
                          Icons.remove_red_eye,
                          color: Colors.white,
                        ),
                        Text(
                          "3.5w",
                          style: TextStyle(color: Colors.white, fontSize: 12),
                        ),
                      ],
                    ),
                    Text(
                      "名企校招交流,不是名企也欢迎!",
                      style: TextStyle(color: Color(0xFFFFFFFF)),
                    ),
                  ],
                ),
                margin: EdgeInsets.only(left: 15),
              ),
            ],
          ),
        ),
      ],
    );
  }

  Widget _buildHeadMember() {
    return Container(
        height: 70,
        child: Row(
          children: <Widget>[
            Padding(padding: EdgeInsets.only(left: 24,top: 16,bottom: 16,right: 24),child: ClipOval(
              child: Image.asset(Util.getImgPath("xz")),
            ),),
            Expanded(
              flex: 1,
              child: Column(
                mainAxisAlignment: MainAxisAlignment.center,
                crossAxisAlignment: CrossAxisAlignment.start,
                children: <Widget>[
                  Text("一杯好喝的咖啡",style: TextStyle(color: Color(0xFF353535),fontSize: 14),),
                  Text("组长",style: TextStyle(color: Color(0xFFA0A0A0),fontSize: 12),),
                ],
              ),
            ),
            Row(
              mainAxisAlignment: MainAxisAlignment.center,
              crossAxisAlignment: CrossAxisAlignment.start,
              children: <Widget>[
                Text("1.4w浏览",style: TextStyle(color: Color(0xFF353535),fontSize: 14),),
                Icon(Icons.settings),
                Icon(Icons.settings),
                Icon(Icons.settings),
              ],
            ),
          ],
        ),
        decoration: BoxDecoration(
          color: Colors.white,
        ));
  }

更多资源请访问:

超详细图文搭建个人免费博客

关注「蛇崽网盘教程资源」公众号 ,在微信后台回复「领取资源」,获取IT资源200G干货大全。

在微信后台回复「130个小程序」,即可免费领取享有导入就能跑的微信小程序

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值