Flutter BoxDecoration boxShadow 完整用法

boxShadowBoxDecoration 的属性,用来加阴影,接收一个数组,可以同时加多层阴影。


1. 最常用写法(单阴影)

dart

复制代码
BoxDecoration(
  boxShadow: [
    BoxShadow(
      color: Colors.black12,    // 阴影颜色
      blurRadius: 10,          // 模糊程度
      spreadRadius: 2,         // 扩散范围
      offset: Offset(0, 4),    // 偏移 (x, y)
    ),
  ],
)

2. 每个参数说明

  • color :阴影颜色,一般带透明度 Colors.black12 / 0x11000000
  • blurRadius:模糊半径,越大越模糊
  • spreadRadius:扩散大小,正数变大,负数变小
  • offset :偏移
    • Offset(0,0) 居中
    • Offset(0,4) 向下阴影
    • Offset(2,2) 右下阴影

3. 多层阴影(质感更强)

dart

复制代码
boxShadow: [
  BoxShadow(
    color: Color(0x08000000),
    blurRadius: 15,
    offset: Offset(0, 6),
  ),
  BoxShadow(
    color: Color(0x0A000000),
    blurRadius: 30,
    offset: Offset(0, 12),
  ),
]

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),
        border: Border.all(
          color: Colors.white.withOpacity(0.2),
          width: 1,
        ),
        // 阴影
        boxShadow: [
          BoxShadow(
            color: Colors.black12,
            blurRadius: 20,
            spreadRadius: 1,
            offset: Offset(0, 8),
          ),
        ],
      ),
    ),
  ),
)

5. 小坑

  • 阴影要半透明颜色才自然
  • 阴影太大、太多层会卡顿
  • 加了阴影后,ClipRRect 可能会裁掉阴影,需要给父组件留空间
相关推荐
安好说AI10 小时前
Flutter 三方库 adaptive_image_picker 的鸿蒙化适配指南:零权限选图、纯 Dart 裁剪与目标大小压缩
flutter·harmonyos
恋猫de小郭12 小时前
Dart Skills CLI 1.0 :AI 时代的 Dart 交付支持
android·前端·flutter
97650333515 小时前
iOS 上架/审核 4.3a全面解读-最新
flutter·ios·objective-c·uniapp
2501_9151063216 小时前
Flutter iOS混淆打包详细教程与步骤
android·flutter·ios·小程序·uni-app·iphone·webview
lqj_本人16 小时前
Flutter 鸿蒙实战:用 wakelock_plus 三方库给阅读页加上屏幕常亮
flutter·华为·harmonyos
熊猫钓鱼>_>1 天前
Flutter app_settings 鸿蒙适配实战:Intent 体系到 Want 的跨越
flutter·华为·harmonyos·openharmony·intent·want
里欧跑得慢1 天前
Flutter主题与样式详解
前端·css·flutter·web
程序员老刘1 天前
现在回头看,Dart取消宏是无比正确的决定
flutter·ai编程·dart
莫道桑榆晚hh1 天前
Flutter 双端开发实战:一套代码搞定 iOS + Android,从开发到上架全流程
flutter
Zeaon1 天前
别再手写筛选栏了:一个可组合的 Flutter 选择组件(5 入口 × 7 委托)
android·flutter