Flutter BoxDecoration

在 Flutter 里,decoration 一般就是指 BoxDecoration ,用来给组件加背景、边框、圆角、阴影、渐变这些样式。结合你刚才在写的 ClipRRect + BackdropFilter,我给你最实用、最常用的用法。


1. 最基础写法

dart

复制代码
Container(
  decoration: BoxDecoration(
    color: Colors.white,
    borderRadius: BorderRadius.circular(16),
  ),
)

2. 常用属性一览

dart

复制代码
BoxDecoration(
  color: Colors.white,                // 背景色
  borderRadius: BorderRadius.circular(16), // 圆角
  border: Border.all(                 // 边框
    color: Colors.grey,
    width: 1,
  ),
  boxShadow: [                        // 阴影
    BoxShadow(
      color: Colors.black12,
      blurRadius: 10,
      offset: Offset(0, 4),
    ),
  ],
  gradient: LinearGradient(...),     // 渐变
  image: DecorationImage(...),       // 背景图
)

3. 圆角(和你前面的 borderRadius 一样)

dart

复制代码
borderRadius: BorderRadius.circular(20),

// 或者只对某些角圆角
borderRadius: BorderRadius.only(
  topLeft: Radius.circular(20),
  topRight: Radius.circular(20),
),

4. 毛玻璃常用组合(你现在的场景)

dart

复制代码
ClipRRect(
  borderRadius: BorderRadius.circular(20),
  child: BackdropFilter(
    filter: ImageFilter.blur(sigmaX: 10, sigmaY: 10),
    child: Container(
      width: 300,
      height: 200,
      // 毛玻璃一定要用带透明度的颜色
      decoration: BoxDecoration(
        color: Colors.white.withOpacity(0.15),
        borderRadius: BorderRadius.circular(20),
      ),
      child: Center(child: Text("毛玻璃")),
    ),
  ),
)

5. 注意一个大坑

**如果 Container 用了 decoration,就不能再用 color 属性!**错误:

dart

复制代码
Container(
  color: Colors.red, // 冲突
  decoration: BoxDecoration(...),
)

正确:

dart

复制代码
Container(
  decoration: BoxDecoration(
    color: Colors.red,
  ),
)
相关推荐
你驴我21 分钟前
WhatsApp 消息撤回与编辑的幂等性设计实践
java·服务器·前端·后端·python
新中地GIS开发老师1 小时前
零基础WebGIS开发入门 | GeoJSON数据持久化
前端·javascript·gis·webgis·三维gis开发
blns_yxl1 小时前
正则驱动实时表单验证(HTML+CSS+JS+正则)
javascript·css·html
sunywz1 小时前
【c#】 Web Deploy一键发布,IIS部署全流程
开发语言·前端·c#
宁&沉沦1 小时前
Chrome 扩展 Manifest 字段版本支持一览(全量)
前端·后端·编辑器
乖孩子2 小时前
Service Worker + IndexedDB 实践
前端
浮生望2 小时前
BFF架构实战:用Express+SSE为Vue3搭建安全的流式对话中间层
前端
Quz2 小时前
QML 与 JavaScript 交互方式:内联函数、外部文件、信号槽与工作线程
javascript·qt
先吃饱再说2 小时前
React 组件通信:从 Props 单向传递到自定义事件
前端·react.js·前端框架
swipe2 小时前
05|(前端转后全栈)不手写一堆 SQL,后端怎么操作数据库?MyBatis-Plus 入门
前端·后端·全栈