【Flutter】ウィンドウのサイズを制限する【window_size】

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【Flutter】ウィンドウのサイズを制限する【window_size】

2024-6-3 | ,

Flutterのパッケージwindow_sizeを使ってウィンドウのサイズを制限したい!

概要

今回の記事では、Flutterのパッケージwindow_sizeを使ってウィンドウのサイズを制限する手順を掲載する。

ウィンドウということでデスクトップアプリ向けです。

仕様書

環境

  • Android Studio Giraffe | 2023.2.1 Patch 2
  • Flutter 3.19.6
  • window_size 4.4.0

手順書

インストール編とコード編の2部構成です。

インストール編

pubspec.yamldependencies:に下記のような感じで追加して

dependencies:
  window_size:
    git:
      url: https://github.com/google/flutter-desktop-embedding
      path: plugins/window_size
      ref: e48abe7

ターミナルでflutter pub getする。

flutter pub get

コード編

ウィンドウの幅を320px、高さを240px未満にさせない例。

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:window_size/window_size.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();

  if (Platform.isWindows || Platform.isLinux || Platform.isMacOS) {
    setWindowMinSize(const Size(320, 240));
  }

  runApp(const MyApp());
}

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
          body: const Center(
            child: Text("Sample")
          )
        )
    );
  }
}

mainで処理を行う。

WidgetsFlutterBinding.ensureInitialized();はプラグインによってはこのメソッドで初期化を行うものもあるそうなので一応呼んでおく。

念のため、デスクトップアプリであるか判定してからsetWindowMinSizeでウィンドウの最小サイズを設定する。

まとめ(感想文)

デスクトップアプリでレイアウト崩れを防止するのに使えるかもね!

引用・参考文献

下記の記事を参考にさせていただきました。ありがとうございました。