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

27 篇文章 0 订阅

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});

  
  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!
        );
      },
    );
  }
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值