首页 > 其他分享 >Flutter监听安卓系统字体变化,监听安卓系统深色模式切换

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

时间:2023-01-27 22:46:50浏览次数:52  
标签:安卓 Flutter context print MediaQuery 监听

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

标签:安卓,Flutter,context,print,MediaQuery,监听
From: https://www.cnblogs.com/tianmiaogongzuoshi/p/17069467.html

相关文章

  • Flutter中渲染过程
    flutter三个部分首先在App开发的时候,我们就会关注一个问题:如何结构化地组织视图数据,提供给渲染引擎,最终完成界面显示。flutter对视图树的概念进行一些扩展,它将......
  • 学习笔记——安卓的下载路径;创建一个空的安卓project;Android中的日志工具划分
    2023-01-27一、安卓(AndroidStudio)的下载路径https://developer.android.google.cn/studio/二、创建一个空的安卓project1、打开安卓后,点击“NewProject”  2......
  • Flutter 耗时监控 | 路由名为空原因分析
    前言最近群里遇到获取Route名为空的问题,当时没在意。。。直到自己在监控页面启动耗时,需要确定当前页面是哪个从而方便标记它加载的耗时时,遇到同样route.settings.name......
  • 安卓实现异步网络请求
    Android异步网络请求可以使用AsyncTask类来实现,AsyncTask是Android提供的一个用于处理异步任务的工具类,它使用三个泛型参数Params、Progress和Result来指定任务的输入、进......
  • Flutter框架渲染流程与使用
    Flutter简述Flutter是一个UISDK,可以进行移动端(iOS,Android),Web端,桌面,它是一个跨平台解决方法。Flutter的特点:美观,快速,高效,开放。美观:Flutter内置了美丽的MaterialDes......
  • Flutter项目国际化(本地化,全球化,多语言)
    目标在Flutter项目中实现国际化,支持多种语言。开发工具下载IntelliJIDEA安装插件:FlutterIntl安装完成后重启IDE。使用Intl对项目进行初始化添加语言添加内......
  • 海康威视楼宇可视对讲解码器拨码规则计算器-安卓版
    博客园首页新随笔联系管理随笔-73 文章-3 评论-12 阅读- 14万  海康威视楼宇可视对讲解码器拨码规则计算器-安卓版 文件名:Divider.ap......
  • Servlet27 - Listener 监听器
    Listener监听xxx对象的xxx过程ServletContextListener监听ServletContext对象的创建与销毁方法名作用contextInitialized(ServletContextEventsce......
  • adb无线连接手机(红米)解除安卓12进程限制
    1、首先是adb版本需要新的,老的adb不支持无线连接,如:“adbpair192.168.3.x:xxxxx”不支持pair这个参数,这个参数表示验证配对码!!!新的adb才支持。 无法识别pair参数 2、......
  • 安卓请求后端初始化列表数据
    :1、首先在安卓端实现一个接口,用来接收请求,获取列表数据:publicinterfaceGetListDataInterface{@GET("/listData")Call<List<String>>getListData();}......