Skip to content

setAspectRatio Windows/Linux 平台行为不一致 #566

@dongfengweixiao

Description

@dongfengweixiao
import 'package:flutter/material.dart';
import 'package:video_player_media_kit/video_player_media_kit.dart';
import 'package:window_manager/window_manager.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  VideoPlayerMediaKit.ensureInitialized(windows: true, linux: true);
  await windowManager.ensureInitialized();
  WindowOptions windowOptions = WindowOptions(
    size: Size(1280, 720),
    minimumSize: Size(960, 540),
    center: true,
    backgroundColor: Colors.transparent,
    titleBarStyle: TitleBarStyle.hidden,
  );
  windowManager.waitUntilReadyToShow(windowOptions, () async {
    await windowManager.setTitleBarStyle(
      TitleBarStyle.hidden,
      windowButtonVisibility: false,
    );
    await windowManager.setAspectRatio(16 / 9);
    await windowManager.show();
    await windowManager.focus();
  });

  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(home: MyHomePage());
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key});

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: AspectRatio(
        aspectRatio: 16 / 9,
        child: LayoutBuilder(
          builder: (context, constraints) {
            return Container(
              color: Colors.blue,
              child: Text(
                'Container Width: ${constraints.maxWidth}\nContainer Height: ${constraints.maxHeight}',
              ),
            );
          },
        ),
      ),
    );
  }
}

以上代码,预期生成一个宽度为 1280 高度为 720 的窗口,窗口内填充宽度为 1280 高度为 720 ,背景颜色为蓝色的容器,容器内显示当前容器的宽高。

但是,在 Linux 平台运行后蓝色容器不能填充满窗口,容器内的文字提示为 Container Width: 1240.888888\nContainer Height: 698.0,蓝色背景无法完全填充窗口,在最右侧存在一定的空白。

相同的代码,在 windows 平台运行符合预期,整个窗口完全填充蓝色背景。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions