31.19 Flutter Desktop App Window Title
20230805
To set the window title for a desktop application through the Window
Manager see Section 31.18. Here we
present an older alternative to set the default window title using the
window_size
pacakge which is not part of pud.dev but can be obtained
from github.
Add the following to pubspec.yaml
:
dependencies:
...
window_size:
git:
url: https://github.com/google/flutter-desktop-embedding.git
path: plugins/window_size
ref: 6c66ad23ee79749f30a8eece542cf54eaf157ed8
...
The ref: is the github SHA hash key of the commit to use. Choose the latest one at the time of implementing. It can be dropped but is useful to avoid code suddenly failing.
Then in lib/main.dart
import the required libraries
(foundation.dart
is required for the Platform
checks) and add the
conditional statement with setWindowTitle()
. We do this in main()
so that it is set before the app runs to ensure the app does not
stutter with the original window title in starting up.
import 'package:flutter/foundation.dart';
import 'package:window_size/window_size.dart';
void main() {
// Identify if Desktop or Mobile app.
desktop = [TargetPlatform.linux, TargetPlatform.macOS, TargetPlatform.windows];
bool isDesktop = defaultTargetPlatform in desktop;
// Tune the window manager before runApp to avoid a lag in the UI.
if (isDesktop) {
WidgetsFlutterBinding.ensureInitialized();
setWindowTitle(APP_TITLE);
}
...
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
...
Your donation will support ongoing availability and give you access to the PDF version of this book. Desktop Survival Guides include Data Science, GNU/Linux, and MLHub. Books available on Amazon include Data Mining with Rattle and Essentials of Data Science. Popular open source software includes rattle, wajig, and mlhub. Hosted by Togaware, a pioneer of free and open source software since 1984. Copyright © 1995-2022 Graham.Williams@togaware.com Creative Commons Attribution-ShareAlike 4.0