这是【Flutter 问题系列第 51 篇】,如果觉得有用的话,欢迎关注专栏。

文章目录

  • 一:问题描述
  • 二:问题分析
  • 三:解决方案

一:问题描述

假如 UI 给你设计的弹窗样式的底部按钮是这样的

数字 1 处有圆角,数字 2 处是边框。

也就是对一个 Container 只设置其属性 borderRadius 的 bottomLeft 有圆角,border 属性的 top 有边框。

这不是 张飞吃豆芽 — 小菜一碟 吗,走你,代码如下所示

return Container(decoration: BoxDecoration(border: Border(top: BorderSide(color: Colors.red, width: 1)),borderRadius: BorderRadius.only(bottomLeft: Radius.circular(20)),),child: Text("取消", style: TextStyle(fontSize: 16, color: Color(0xFFFD785D))),
);

然后报错它不就来了吗,报错信息如下图所示

错误信息是 A borderRadius can only be given for a uniform Border ,翻译过来就是 边界半径只能被指定为一个统一的边界 ,这是什么意思呢?

二:问题分析

根据报错信息查看源码,如下图所示

再查看定义 _colorIsUniform、_widthIsUniform、_styleIsUniform 的源码可知,当边框属性 border 和 圆角属性 borderRadius 不统一时,会报上述错误信息,

通俗地说,就是你 只设置了盒子一边的边框 ,但你同时也设置了其它边的圆角,就会出现这个问题。

反之,当你对盒子所有的边都设置边框时,随便设置任意一边的圆角都不会出现上述问题。

三:解决方案

既然无法对同一个盒子既只设置一边的边框,又设置某边的圆角,那就用组合组件的方式解决。

可以用 ClipRRect 组件嵌套在 Container 盒子外层,然后设置其 borderRadius 属性即可。

代码如下所示

return ClipRRect(borderRadius: BorderRadius.only(bottomLeft: Radius.circular(20)),child: Container(decoration: BoxDecoration(color: Colors.white,border: Border(top: BorderSide(color: Colors.red, width: 1)),),child: Text("取消", style: TextStyle(fontSize: 16, color: Color(0xFFFD785D))),),
);

效果图如下

当然,还有其它的解决方案,比如再在当前 Container 外再嵌套一个 Container ,然后在 stack overflow 上也看到了一个通过 stack 方式来解决,感兴趣的可以 点击此处 了解。

至此,关于 Flutter 出现 A borderRadius can only be given for a uniform Border 问题的解决方案便介绍到这里。

你的问题得到解决了吗?欢迎在评论区留言。

赠人玫瑰,手有余香,如果觉得文章不错,希望可以给个一键三连,感谢。


结束语

Google 的 Flutter 越来越火,截止 2022年1月6日 GitHub 标星已达 134K,Flutter 毅然是一种趋势,所以作为前端开发者,没有理由不趁早去学习。

无论你是 Flutter 新手还是已经入门了,不妨先点个关注,后续我会将 Flutter 中的常用组件(含有源码分析、组件的用法及注意事项)以及可能遇到的问题写到 CSDN 博客中,希望自己学习的同时,也可以帮助更多的人。

【Flutter 问题系列第 51 篇】 A borderRadius can only be given for a uniform Border 的解决方案相关推荐

  1. 【Flutter 问题系列第 40 篇】如何给 Container 四周设置圆角以及给某一角设置圆角

    这是[Flutter 问题系列第 40 篇],如果觉得有用的话,欢迎关注专栏. Container 组件有一个属性 BoxDecoration ,可以用来修改样式 1.给 Container 四周设置 ...

  2. 【Flutter 问题系列第 71 篇】Flutter 中 Uint8List 和 Image 之间的相互转换

    这是[Flutter 问题系列第 71 篇],如果觉得有用的话,欢迎关注专栏. Flutter 版本:2.5.0,Dart 版本:2.14 因为最近一直在处理照相机.裁剪图片和 OCR 图片识别的功能 ...

  3. 【Flutter 问题系列第 15 篇】如何给 Flutter 中的图片设置透明度

    这是[Flutter 问题系列第 15 篇],如果觉得有用的话,欢迎关注专栏. 在 Flutter 中,如果背景色是颜色的话,我们知道可以直接通过 Color.fromRGBO(r, g, b, op ...

  4. 【Flutter 问题系列第 41 篇】Cannot provide both a color and a decoration,To provide both, use “decoration“

    这是[Flutter 问题系列第 41 篇],如果觉得有用的话,欢迎关注专栏. 这个错误相信每一个刚接触 Flutter 的都会碰到,不是什么大问题,只是一个注意事项而已. 一:报错信息 示例代码如下 ...

  5. 【Flutter 问题系列第 22 篇】在 Flutter 中如何截取屏幕并显示到页面中,以及如何将截图保存到相册

    这是[Flutter 问题系列第 22 篇],如果觉得有用的话,欢迎关注专栏. 关于在 Flutter 中如何截取屏幕,以及如何将截图保存到相册的文章少之又少,即使有,也是错误一大片,有的甚至运行后都 ...

  6. 【Flutter 组件系列第 2 篇】CircularProgressIndicator (圆形进度条组件)

    这是[Flutter 组件系列第 2 篇],如果觉得有用的话,欢迎关注专栏. 文章目录 一:CircularProgressIndicator 的构造函数 二:基本用法 三:设置进度具体值 四:设置背 ...

  7. 【Flutter 问题系列第 46 篇】如何修改 Flutter 项目的包名

    这是[Flutter 问题系列第 46 篇],如果觉得有用的话,欢迎关注专栏. 如果你开发过 Android 原生的项目,修改项目的包名只需要修改 android - app - build.grad ...

  8. 【Flutter 问题系列第 19 篇】安装 apk 包时提示 Install canceled by user 的问题如何解决

    这是[Flutter 问题系列第 19 篇],如果觉得有用的话,欢迎关注专栏. 一:问题描述 公司的测试机中我用的是小米的,用着一直没问题,这不五一想着用自己的 Redmi Note 9 Pro 跑一 ...

  9. 【Flutter 问题系列第 5 篇】Flutter 去除 ListView 组件中的蓝色回弹效果

    这是[Flutter 问题系列第 5 篇],如果觉得有用的话,欢迎关注专栏. ListView 组件默认的滑动效果如下 可以看到,在顶部向下拖动或者到底部向上拖动时,会有一个蓝色的回弹效果. 这是因为 ...

最新文章

  1. CRM WebClient UI里标准configuration和custom configuration区别
  2. html:(35):缩进和行高
  3. mysql 5.5 安装配置方法图文教程
  4. sql server 外键_什么是SQL Server中的外键
  5. 开课吧Java课堂:什么是流?如何运用字节流和字符流?
  6. 一道组合数学题-马拦过河卒,很精彩
  7. Eurek自我保护机制
  8. 使用ftl生成word
  9. uniapp 集成腾讯云超级播放器问题
  10. 苹果手机备份数据到电脑什么位置 iPhone备份到电脑上的东西在哪里
  11. JavaScript系列之去掉字符串前后的空格
  12. 从“领域变迁”的视角,来看钉钉的“退让”与“进取”
  13. Oracle中国CEO胡伯林:管理就是沟通
  14. 眼睛炯炯有神的教官领着我们这些小公主
  15. flask搜索引擎whoosh的配置
  16. 新的天花?高通量如何加速抗猴痘病毒化合物筛选 | MedChemExpress
  17. 一文教你看懂Fama-French三因子模型
  18. 从Oracle收购Sun 公司谈起
  19. java 存储空间 简单分析
  20. 名风新浪博客评论软件-自动评论推广

热门文章

  1. 精准推送服务系统架构设计
  2. 计算机变成游戏,你玩游戏变成渣,复旦大神在5年前在游戏“我的世界”里写学术论文展示,从0开始打造计算机有多难!...
  3. 递归函数python基例_python基础——递归函数
  4. 斯坦福大学(吴恩达) 机器学习课后习题详解 第二周 多变量线性回归
  5. HTML5:离线存储
  6. CSS 盒子模型、边框
  7. 将一台mackbook的备忘录全部导到另一台mackbook上
  8. 【OpenCV入门】读取图片/视频/调用摄像头
  9. 时刻重视自己邮件信息不泄露
  10. MAC上Git安装与GitHub基本使用