Flutter BackdropFilter 用来实现背景模糊效果

14 min read

Flutter的BackdropFilter小部件可用于在子部件上方创建视觉效果,比如模糊、颜色过滤或淡化。实现背景模糊效果的方法如下:

  1. 导入相关库:
import 'dart:ui';
import 'package:flutter/material.dart';
  1. 创建一个具有背景图像的小部件,例如Container:
Container(
  decoration: BoxDecoration(
    image: DecorationImage(
      image: AssetImage('assets/background.jpg'),
      fit: BoxFit.cover,
    ),
  ),
  child: // 添加模糊效果的子部件,
)
  1. 在Container的子部件上方添加BackdropFilter小部件:
Container(
  decoration: BoxDecoration(
    image: DecorationImage(
      image: AssetImage('assets/background.jpg'),
      fit: BoxFit.cover,
    ),
  ),
  child: BackdropFilter(
    filter: ImageFilter.blur(sigmaX: 10, sigmaY: 10), // 调整模糊强度
    child: // 子部件,
  ),
)

在上述示例中,BackdropFilter的filter属性使用了ImageFilter.blur方法来指定模糊效果的强度。sigmaX和sigmaY参数控制模糊的横向和纵向程度。较大的值会产生更明显的模糊效果。

请注意,BackdropFilter需要位于具有不透明背景的小部件内部才能起作用,例如Container。