flutter-plugins icon indicating copy to clipboard operation
flutter-plugins copied to clipboard

When a new window opens on MacOS, it appears after a short black screen

Open kaitukid opened this issue 1 year ago • 3 comments

When opening a new window on MacOS, there is a short black screen, I don't know if this is a MacOS problem.

https://github.com/MixinNetwork/flutter-plugins/assets/18432861/d9948e93-867a-4d9e-956c-e4c5eebb88c8

 import 'dart:convert';

import 'package:collection/collection.dart';
import 'package:desktop_multi_window/desktop_multi_window.dart';
import 'package:flutter/material.dart';
import 'package:window_manager/window_manager.dart';

void main(List<String> args) async {
  WidgetsFlutterBinding.ensureInitialized();

  if (args.firstOrNull == 'multi_window') {
    runApp(const MySubWindow());
  } else {
    // WidgetsFlutterBinding.ensureInitialized();

    await windowManager.ensureInitialized();

    windowManager.waitUntilReadyToShow().then((_) async {
      await windowManager.setTitle('flutter desktop_multi_window demo');
      await windowManager.setSize(const Size(800, 600));
      await windowManager.setMinimumSize(const Size(800, 600));
      await windowManager.center();
      await windowManager.show();
      // await windowManager.setSkipTaskbar(false);
    });

    runApp(const MaterialApp(home: MultiWindowPage()));
  }
}

class MultiWindowPage extends StatefulWidget {
  const MultiWindowPage({Key? key}) : super(key: key);

  @override
  State<MultiWindowPage> createState() => _MultiWindowPageState();
}

class _MultiWindowPageState extends State<MultiWindowPage> {
  void _addWindow() async {
    final window = await DesktopMultiWindow.createWindow(jsonEncode({}));
    window
      ..setFrame(const Offset(0, 0) & const Size(600, 450))
      ..center()
      ..setTitle('标题')
      ..show();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: _addWindow,
              child: const Text('打开子窗口'),
            ),
          ],
        ),
      ),
    );
  }
}

class MySubWindow extends StatelessWidget {
  const MySubWindow({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.blue,
        fontFamily: 'Microsoft YaHei',
      ),
      home: const Scaffold(
        body: Center(
          child: Text(
            '这里是新的窗口',
            style: TextStyle(fontSize: 24),
          ),
        ),
      ),
    );
  }
}

kaitukid avatar Mar 06 '24 06:03 kaitukid

I encountered the same issue.

LEggcookies avatar Mar 11 '24 09:03 LEggcookies

try release

labulakalia avatar Mar 30 '24 16:03 labulakalia