如何调整Flutter Web项目运行时的Chrome浏览器执行窗口尺寸
Flutter Web调整Chrome运行窗口尺寸的实现方法
方法1:调试运行时直接指定启动窗口大小
你在终端执行运行命令时增加浏览器参数即可直接启动指定尺寸的Chrome窗口,示例命令如下:flutter run -d chrome --web-browser-argument "--window-size=360,640"
你可以根据需求修改360,640为你需要的宽高数值,这个方法不需要修改业务代码,调试阶段最便捷。
方法2:代码层面动态控制浏览器窗口大小
Flutter Web可以直接调用浏览器API修改窗口尺寸,需要引入dart:html库,修改后的代码如下:
import 'package:flutter/material.dart'; import 'dart:html' as html; void main() { // 初始化时直接调整窗口大小 html.window.resizeTo(360, 640); runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'basic', theme: ThemeData( primarySwatch: Colors.blue, ), home: MyHomePage(), ); } } class MyHomePage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( // 用Center包裹让内容居中显示,不会贴在窗口左上角 body: Center( child: Container( width: 0.5625*360, height: 360, color: Colors.greenAccent, ), ), ); } }
注意:该方法受浏览器安全策略限制,仅当页面是单独打开的独立窗口时才能生效,嵌入在其他页面的iframe或者普通标签页可能会被浏览器拦截调整操作。
方法3:固定应用内容尺寸(不修改浏览器窗口本身)
如果你不需要修改浏览器窗口大小,只需要让应用内容保持类似即时通讯软件的固定尺寸,多余区域留白即可,不需要调用浏览器API,仅需修改布局代码即可:
import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'basic', theme: ThemeData( primarySwatch: Colors.blue, ), // 全局限制应用最大宽高 home: ConstrainedBox( constraints: const BoxConstraints(maxWidth: 360, maxHeight: 640), child: MyHomePage(), ), ); } } class MyHomePage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( body: Container( color: Colors.greenAccent, ), ); } }
内容的提问来源于stack exchange,提问作者B4D4S5
相关产品推荐
相关产品推荐

