flutter windows如何实现全屏
在Flutter Windows应用中,如何实现全屏显示?我尝试了一些方法但效果不理想,希望有具体的代码示例或步骤说明。另外,是否支持动态切换全屏和窗口模式?
        
          2 回复
        
      
      
        在Flutter中,使用SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersive)即可实现全屏。此方法会隐藏系统UI,适用于Windows平台。
更多关于flutter windows如何实现全屏的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在 Flutter Windows 应用中实现全屏,可以通过以下方法:
方法一:使用 systemChrome(推荐)
import 'package:flutter/services.dart';
// 进入全屏
void enterFullScreen() {
  SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersive);
}
// 退出全屏
void exitFullScreen() {
  SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
}
// 在需要的地方调用
TextButton(
  onPressed: enterFullScreen,
  child: Text('进入全屏'),
)
方法二:Windows 平台特定实现
修改 windows/runner/main.cpp 文件:
#include <flutter/dart_project.h>
#include <flutter/flutter_view_controller.h>
#include <windows.h>
int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,
                      _In_ wchar_t *command_line, _In_ int show_command) {
  // 创建全屏窗口
  HWND hwnd = CreateWindow(
      // ... 其他参数
      WS_POPUP | WS_VISIBLE,  // 无边框全屏
      CW_USEDEFAULT, CW_USEDEFAULT,
      GetSystemMetrics(SM_CXSCREEN),  // 屏幕宽度
      GetSystemMetrics(SM_CYSCREEN),  // 屏幕高度
      nullptr, nullptr, nullptr, nullptr);
}
方法三:使用 window_manager 插件
在 pubspec.yaml 中添加依赖:
dependencies:
  window_manager: ^0.3.0
代码实现:
import 'package:window_manager/window_manager.dart';
// 设置全屏
void setFullScreen() async {
  await windowManager.setFullScreen(true);
}
// 退出全屏
void unsetFullScreen() async {
  await windowManager.setFullScreen(false);
}
注意事项:
- 方法一 是最简单跨平台的方式
- 方法二 需要修改原生代码,适合需要深度定制的场景
- 方法三 提供了更多窗口控制功能
- 全屏时考虑添加退出全屏的按钮或快捷键(如 ESC)
推荐使用 方法一 或 方法三,它们更易于维护且兼容性更好。
 
        
       
             
             
            

