• 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. );

  • 相关阅读:
    【BOOST C++ 8 内部进程】(1)流和文件
    tomcat 配置ssl
    JZ47 礼物的最大价值
    【Java初阶】Array详解(下)
    数据结构-二叉树的前、中、后序遍历
    基于Unity设计的井字棋小游戏
    C++数据结构:线性表查找
    Promise笔记
    LeetCode(力扣)78. 子集Python
    腾讯T9纯手写基于Mycat中间件的分布式数据库架构笔记
  • 原文地址:https://blog.csdn.net/eastWind1101/article/details/127939814