flutter 布局时内容溢出容器的类似Overflow-hidden的简单解决

最近初上手flutter,对很多组件都不熟悉,在做瀑布流的时候发现瀑布流item中使用column布局,不包装Image会导致图片直接溢出。

在网上搜索更好的解决方案,但是并没有找到有类似overflow hidden的解决方案,于是尝试了一个比较简单的实现,抛砖引玉。

顺便一提,瀑布流使用的是flutter_staggered_grid_view组件

Card 实现

flutter自己提供的Card组件就可以很好解决这个问题。

设置Card的clipBehavior即可防止溢出
RoundedRectangleBorder则是自定义圆角弧度

clipBehavior: Clip.hardEdge,
 shape: RoundedRectangleBorder(
          borderRadius: BorderRadius.all(Radius.circular(20.0)),
        ),

在这里插入图片描述

非Card实现

ClipRRect组件可以进行图片圆角化

未经处理的情况

Container(
        child: Column(
          children: [
            
            new Image(
                image: widget.talkImage,
                fit: BoxFit.cover,
              ),

           //...其他布局
              ],
        decoration: BoxDecoration(
            border: Border.all(
              color: Colors.blue,
              width: 2,
            ),
            borderRadius: BorderRadius.all(Radius.circular(15)),
            ),
           
      ),

在这里插入图片描述

可以看到图片部分出现在了边框外面

处理后

将上面的

new Image(
                image: widget.talkImage,
                fit: BoxFit.cover,
              ),

修改为

ClipRRect(
              child: new Image(
                image: widget.talkImage,
                fit: BoxFit.cover,
              ),
              borderRadius: BorderRadius.vertical(top: Radius.circular(13)),
            ),

在这里插入图片描述

这时就可以看到图片也变成圆角了

但是这里实际上是取巧了,是将图片进行了剪切,而不是直接把container设置溢出隐藏,container和ClipRRect的borderRadius不并相同

其他尝试

还进行了在

decoration: BoxDecoration(
          border: Border.all(
            color: Colors.blue,
            width: 2,
          ),
          borderRadius: BorderRadius.all(Radius.circular(15)),
        ),
       

下添加一行clipBehavior(必须和decoration一起使用,不然会报错)

 clipBehavior: Clip.hardEdge,

设置边距并取消图片切片,但是图片会覆盖边框

在这里插入图片描述

希望能有大佬指点比单纯切图片更好的实现方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值