Flutter桌面应用开发之毛玻璃效果

目录

毛玻璃效果:毛玻璃效果是一种模糊化的视觉效果,常用于图像处理和界面设计中。它可以通过在图像或界面元素上应用高斯模糊来实现。使用毛玻璃效果可以增加图像或界面元素的柔和感,同时减少细节的清晰度。

效果

实现方案

依赖库

flutter_acrylic

支持平台

Windows, macOS & Linux

实现步骤

  1. 在pubspec.yaml中添加依赖

    dependencies:
    ...
    flutter_acrylic: ^1.1.3

  2. 在main函数中初始化插件

    Future<void> main() async {
    ....
    WidgetsFlutterBinding.ensureInitialized();
    await Window.initialize();
    ....
    runApp(const MyApp());
    }

  3. 使用毛玻璃效果

毛玻璃效果配置选项:

WindowEffect.acrylic:Windows 10 1803 及以上版本

WindowEffect.aero:Windows 10 1803以下版本

复制代码
Future<void> _applyAcrylicV1() async {
 
  Color color =
  Platform.isWindows ? const Color(0xb3ffffff) : Colors.transparent;
  //effect:背景效果
  //color:毛玻璃背景颜色及透明度
  //dark:是否是暗色模式
  await Window.setEffect(effect: WindowEffect.acrylic, color: color, dark: true);
}
  1. 配置Scaffold的背景颜色为透明

    Scaffold(
    backgroundColor: Colors.transparent,
    ...
    );

注意事项

1.必须配置Scaffold的背景颜色为透明,否则毛玻璃效果无法出现,如下图

  1. Windows不同版本必须选择对应的配置选项,否则会有性能问题。如在Windows 10 1803以下版本使用WindowEffect.acrylic,拖动窗口会严重卡顿;
  2. 开发环境为Window 10时,已运行程序点击Run重新运行,会导致毛玻璃效果异常,显示FlutterWindow的边框和标题栏;

(1)Flutter Hot Reload不会导致该问题;

(2)Release 版本不存在该问题;

(3)开发环境为Window11不存在该问题;

话题扩展

1.如何获取Windows版本?

Windows不同版本必须选择对应的配置选项,那又如何获取Windows版本了?

  1. 如何去掉窗口标题栏?

(1)标题栏不美观,想去掉怎么办?

(2)有需求需要在标题栏新增功能怎么办?

  1. 开发环境为Window 10的情况下,如何规避毛玻璃效果下显示FlutterWindow的边框和标题栏?

(1)就是关闭程序,重新运行即可;

(2)从控制FlutterWindow边框和标题栏方面探索

相关推荐
程序员老刘15 分钟前
Kotlin vs Dart:当“优雅”变成心智负担,我选择了更简单的 Dart
flutter·kotlin·dart
徐安安ye18 分钟前
Flutter 车载系统开发:打造符合 Automotive Grade Linux 标准的 HMI 应用
linux·flutter·车载系统
恋猫de小郭2 小时前
2025 年终醒悟,AI 让我误以为自己很强,未来程序员的转型之路
android·前端·flutter
_大学牲3 小时前
Flutter 勇闯2D像素游戏之路(五):像元气骑士一样的设计随机地牢
flutter·游戏·游戏开发
音浪豆豆_Rachel5 小时前
Flutter鸿蒙化之深入解析Pigeon非空字段设计:non_null_fields.dart全解
flutter·harmonyos
Zender Han6 小时前
Flutter 图片裁剪插件 image_cropper 最新版介绍与使用教程
android·flutter·ios
子榆.6 小时前
Flutter 与开源鸿蒙(OpenHarmony)实时音视频通话实战:基于 AVSession 与 Native 音视频栈构建安全通信应用
flutter·开源·harmonyos
xianjixiance_7 小时前
Flutter跨平台向量数学库vector_math鸿蒙化使用指南
flutter·华为·harmonyos
消失的旧时光-19437 小时前
从命令式跳转到声明式路由:前端、Android、Flutter 的一次统一演进
android·前端·flutter·状态模式
xianjixiance_7 小时前
Flutter跨平台UUID生成工具uuid_test鸿蒙化使用指南
flutter·elasticsearch·harmonyos