码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Flutter组件--ThemeData属性


    使用主题可以在App里面共享颜色和字体样式.在Flutter里面有两种方式来使用主题,一种是全局范围的,一种是使用Theme Widget,Theme Widget可以在App的某个部分使用主题.全局的主题其实也就是MaterialApp将Theme作为跟Widget了.

    1. ThemeData({
    2. brightness: colorScheme.brightness,//深色还是浅色,也就是暗黑模式还是正常模式
    3. MaterialColor? primarySwatch//主题颜色样本(设置后,导航栏,tabbar颜色,悬浮按钮颜色,switch按钮的默认颜色都是该颜色.)
    4. Color? primaryColor,//主色,单独设置导航栏和tabbar颜色
    5. Color? accentColor,//次颜色,决定大多数widget的颜色,如进度条, switch开关,悬浮按钮等
    6. Color cardColor,//卡片颜色
    7. Color dividerColor,//分割线颜色
    8. ButtonThemeData buttonTheme,/*
    9. 按钮主题(按钮默认最小宽度是88,高度是36),可以全局设定按钮的大小
    10. 实例:
    11. buttonTheme: ButtonThemeData(
    12. height:44,
    13. minWidth:60,
    14. buttonColors:colors.red,
    15. ).*/
    16. Color cursorColor,//输入框光标颜色
    17. Color? dialogBackgroundColor,//对话框背景颜色
    18. TextTheme? textTheme,
    19. /*
    20. 全局设置字体主题,包括标题,body等文字样式
    21. textTheme: TextTheme(
    22. body1:textStyle(fontSize:16),//body1是系统默认的字体大小14.这些将全局改为16.body2是默认14号字体的加粗样式.
    23. )
    24. */
    25. iconTheme: iconTheme,//icon默认样式
    26. TargetPlatform platform,//指定平台,应用特定平台控件风格
    27. })

    创建全局主题:

           MaterialApp接收一个theme的参数,类型为ThemeData,为App提供的颜色和字体.支持的参数可以在这里查看.

    1. MaterialApp(
    2. title: 'Flutter Demo',
    3. theme: ThemeData(
    4. brightness: Brightness.dark,
    5. primarySwatch: Colors.blue,
    6. ),
    7. );

    创建布局主题: 

       如果想为某个页面使用不同与App的风格,可以使用Theme来覆盖App的主题

    1. Theme(
    2. data: ThemeData(
    3. accentColor: Colors.blue,
    4. ),
    5. child: Text("hellol world"),
    6. );

    覆盖(扩展)主题:

    如果不想覆盖所有的样式,可以继承App的主题,只覆盖部分样式,使用copyWith方法.

    1. Theme(
    2. data: Theme.of(context).copyWith(accentColor: Colors.yellow)
    3. child: Text("hellol world"),
    4. );

  • 相关阅读:
    servlet基础知识
    【PAT甲级】1141 PAT Ranking of Institutions
    疯了!全网居然有人一次性把Java虚拟机HotSpot 给讲透彻了
    拒绝“爆雷”!GaussDB(for MySQL)新上线了这个功能
    壳聚糖/葡聚糖/纳米羟基磷灰石复合水凝胶/鱼明胶-半乳糖壳聚糖水凝胶肝支架的制备
    【Linux驱动开发】点亮一个LED的三种字符设备驱动框架
    js禁用浏览器 pdf 打印、下载功能(pdf.js 禁用打印下载、功能)
    如何远程操控桌面实现远程管理运维?
    android studio修改字体大小
    我们需要什么样的监控摄像机?
  • 原文地址:https://blog.csdn.net/eastWind1101/article/details/127939814
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号