Flutter监听安卓系统字体变化,监听安卓系统深色模式切换

Flutter通过强大的MediaQuery控件做到监听前设备的信息及其设备信息的动态变化

参考:Flutter 强大的MediaQuery控件
Flutter 小技巧之 MediaQuery 和 build 优化你不知道的秘密
MediaQuery妙用
Flutter官方文档 MediaQuery

一个简单的小案例

import 'package:flutter/material.dart';
import 'ui/HomePage.dart'; 
void main() {
 runApp(const MyApp());
}
class MyApp extends StatelessWidget {
 const MyApp({super.key});
 @override
 Widget build(BuildContext context) {
 return MaterialApp(
 title: 'Flutter Demo',
 theme: ThemeData(
 primarySwatch: Colors.blue,
 ),
 routes: {
 "/":(context) => const MyHomePage(title: '23') // 测试页面
 },
 initialRoute: '/',
 builder: (context, widget) {
 print('监听到安卓系统字体大小变化');
 print(MediaQuery.of(context).textScaleFactor);
 print('监听到安卓系统主题深色模式切换');
 print(MediaQuery.of(context).platformBrightness == Brightness.light ? '白色主题':'深色主题');
 return MediaQuery(
 // 设置全局文字缩放因子为默认1.0,文字大小不随系统变化而改变
 data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0),
 child: widget!
 );
 },
 );
 }
}
作者:天渺工作室原文地址:https://segmentfault.com/a/1190000043357241

%s 个评论

要回复文章请先登录注册