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.yaml
のdependencies:
に下記のような感じで追加して
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
でウィンドウの最小サイズを設定する。
まとめ(感想文)
デスクトップアプリでレイアウト崩れを防止するのに使えるかもね!
引用・参考文献
下記の記事を参考にさせていただきました。ありがとうございました。