如何创建常量类的飞镖父级

时间:2019-09-14 11:34:30

标签: flutter dart

我正在尝试使用const Obeject用作Flutter主题。该对象必须是const,以便允许Hot Reload动态显示更改。

我尝试了静态const属性和最终实例属性的各种组合,但无法获得理想的效果。

以下内容无法编译:

import 'package:flutter/material.dart';

ThemeBase globalTheme;

abstract class ThemeBase {
  final Color primaryColor;
  final Color secondaryColor;

  const ThemeBase();
}

class PurpleTheme extends ThemeBase {
  final Color primaryColor;
  final Color secondaryColor;

  const PurpleTheme() :
        primaryColor = Colors.deepPurpleAccent,
        secondaryColor = Colors.black45;
}

class RedTheme extends ThemeBase {
  final Color primaryColor;
  final Color secondaryColor;

  const RedTheme() :
        primaryColor = Colors.redAccent,
        secondaryColor = Colors.black45;
}

const Color kAppBarColor = globalTheme.primaryColor;

最终,“ globalTheme”对象将在main.dart中实例化以实现特定的构建风格,或者可以用于在亮/暗主题之间切换或允许用户选择主题-理论上,我可以将属性设置为非-final,但除了失去热Reload之外,这还会降低性能。

0 个答案:

没有答案