美文网首页
Flutter中主题风格

Flutter中主题风格

作者: 翀鹰精灵 | 来源:发表于2020-05-23 14:27 被阅读0次

Flutter中主题风格可通过Theme来定义,从而可实现整个App风格的统一。
一旦设置了Theme主题, 那么应用程序中的某些Widget, 就会直接使用主题的样式。

一、全局 Theme

      theme: ThemeData(
        // 1.亮度
          brightness: Brightness.light,
          // 2.primarySwatch传入不是Color, 而是MaterialColor(包含了primaryColor和accentColor)
          primarySwatch: Colors.red,
          // 3.primaryColor: 单独设置导航和TabBar的颜色
          primaryColor: Colors.orange,
          // 4.accentColor: 单独设置FloatingActionButton\Switch
          accentColor: Colors.green,
          // 5.Button的主题
          buttonTheme: ButtonThemeData(
              height: 25,
              minWidth: 10,
              buttonColor: Colors.yellow
          ),
          // 6.Card的主题
          cardTheme: CardTheme(
              color: Colors.greenAccent,
              elevation: 10
          ),
          // 7.Text的主题
          textTheme: TextTheme(
            body1: TextStyle(fontSize: 16, color: Colors.red),
            body2: TextStyle(fontSize: 20),

            display1: TextStyle(fontSize: 14),
            display2: TextStyle(fontSize: 16),
            display3: TextStyle(fontSize: 18),
            display4: TextStyle(fontSize: 20),
          )
      ),

假如此时我们另一个界面不想用全局配置的橘黄色,可能另一个界面是红色主题,此时正确的做法是在创建一个ThemeData,通过 Theme.of(context).copyWith(primaryColor: Colors.purple)来设置主题色, 示例代码如下:

class _OnePageState extends State<OnePage> {
  @override
  Widget build(BuildContext context) {
    return  Theme(
      data: Theme.of(context).copyWith(primaryColor: Colors.purple),
      child: Scaffold(
      appBar: AppBar(
        title: Text("主题2"),
      ),
      body: Text("第一页",
        style: Theme.of(context).textTheme.display3,), // This trailing comma makes auto-formatting nicer for build methods.
    ),);
  }
}

二、暗黑 Theme适配
目前很多应用程序都需要适配暗黑模式,尤其是iOS项目,上架到APPstore必须适配暗黑模式,那么用flutter开发的项目如何适配暗黑模式呢?依旧是使用MaterialApp里面的 ThemedartTheme两个参数来配合,代码如下:

class _OnePageState extends State<OnePage> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: '暗黑模式',
      theme: ThemeData.light(),
      darkTheme: ThemeData.dark(),
      home: HYHomePage(),
    );
  }
}

以上就是关于Theme的学习记录。
Demo下载

相关文章

  • Flutter中主题风格

    Flutter中主题风格可通过Theme来定义,从而可实现整个App风格的统一。一旦设置了Theme主题, 那么应...

  • Flutter(十八)主题风格

    在Flutter开发中,我们可以通过定义 Theme,复用颜色和字体样式,从而让整个app的设计看起来更一致。 一...

  • Flutter封装主题风格

    主入口适配普通theme和黑暗theme 封装好的主题类文件theme/theme.dart 其他子widget如...

  • Flutter开发 -- [18 - 主题风格]

    一. Theme主题的使用 Theme分为:全局Theme和局部Theme主题有两个作用:设置了主题之后,某些Wi...

  • flutter 主题风格、屏幕适配

    主题风格、屏幕适配 主题 样式统一管理 全局样式 Text组件使用全局主题: 局部Theme 如果某个具体的Wid...

  • Flutter 自定义主题风格

    质感设计的Theme类将主题应用于后代控件,主题描述了应用程序的颜色和排版选择。后代控件使用Theme.of获取当...

  • Day15 - Flutter - 主题风格

    概述 主题风格 一、主题风格 Theme分为:全局Theme和局部Theme主题有两个作用:设置了主题之后,某些W...

  • Flutter | 常用组件分类、概述、实战

    Flutter组件的分类 文字类型 容器类型 辅助提示类型 列表类型 系统主题风格类型 交互类型 文字类型 用于描...

  • Flutter 代码开发规范

    转自:flutter-go[https://github.com/alibaba/flutter-go] 代码风格...

  • Flutter实战(百姓生活+)

    1、风格 我们之前的风格都是material风格 其实flutter还自带一种风格cupertino 2、函数返回...

网友评论

      本文标题:Flutter中主题风格

      本文链接:https://www.haomeiwen.com/subject/wapkahtx.html