Flutter中如何监听windows_manager的最小化事件

在Flutter开发Windows应用时,如何监听窗口管理器的窗口最小化事件?目前使用window_manager插件,但找不到相关事件回调。是否有官方API或第三方方案能实现这个功能?需要兼容Windows 10/11系统。

2 回复

在Flutter中监听窗口最小化事件,可以使用window_manager插件的onWindowEvent方法:

windowManager.onWindowEvent((event) {
  if (event == WindowEvent.minimize) {
    // 处理最小化事件
  }
});

需要先添加window_manager依赖并申请相应权限。

更多关于Flutter中如何监听windows_manager的最小化事件的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在 Flutter 中监听窗口最小化事件,可以通过 window_manager 插件实现。以下是具体步骤:

  1. 添加依赖
    pubspec.yaml 中添加:

    dependencies:
      window_manager: ^0.3.0
    
  2. 初始化并监听事件
    main.dart 中初始化并添加事件监听:

    import 'package:flutter/material.dart';
    import 'package:window_manager/window_manager.dart';
    
    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await windowManager.ensureInitialized(); // 初始化窗口管理器
      runApp(MyApp());
    }
    
    class MyApp extends StatefulWidget {
      @override
      _MyAppState createState() => _MyAppState();
    }
    
    class _MyAppState extends State<MyApp> with WindowListener {
      @override
      void initState() {
        super.initState();
        windowManager.addListener(this); // 添加监听器
      }
    
      @override
      void dispose() {
        windowManager.removeListener(this); // 移除监听器
        super.dispose();
      }
    
      // 监听窗口最小化事件
      @override
      void onWindowMinimize() {
        print('窗口已最小化');
        // 在此处添加自定义逻辑
      }
    
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: Scaffold(
            appBar: AppBar(title: Text('窗口事件示例')),
            body: Center(child: Text('尝试最小化窗口以触发事件')),
          ),
        );
      }
    }
    

注意事项

  • 确保在 initState 中添加监听,在 dispose 中移除。
  • onWindowMinimizeWindowListener 提供的回调方法,窗口最小化时自动触发。
  • 适用于 Windows、macOS 和 Linux 平台。

通过以上代码,即可在 Flutter 应用中监听并响应窗口最小化事件。

回到顶部