initThemeConfig method

  1. @override
void initThemeConfig(
  1. String configId, {
  2. BaseCommonConfig? currentLevelCommonConfig,
})
override

部分代码示意如下:

cardTitleConfig.detailTextStyle.merge(
  BrnTextStyle(
    color: commonConfig.colorTextBase,
    fontSize: commonConfig.fontSizeBase,
  ).merge(detailTextStyle),
);

- 以 `commonConfig` 字段为基础 merge `detailTextStyle`。
  `detailTextStyle` 字段优先级高,当detailTextStyle中字段(如 color)为 null 时
  会使用 `commonConfig.colorTextBase`。
- 以默认上一级配置为基础 merge 第一步的结果,当第一步中字段(如 color)为空时,
  使用上一层级配置的 color (`cardTitleConfig.detailTextStyle.color`)。

Implementation

@override
void initThemeConfig(
  String configId, {
  BaseCommonConfig? currentLevelCommonConfig,
}) {
  super.initThemeConfig(
    configId,
    currentLevelCommonConfig: currentLevelCommonConfig,
  );

  BaseTabBarConfig tabBarConfig =
      BaseThemeConfig.instance.getConfig(configId: configId).tabBarConfig;

  _tabHeight ??= tabBarConfig._tabHeight;
  _indicatorHeight ??= tabBarConfig._indicatorHeight;
  _indicatorWidth ??= tabBarConfig._indicatorWidth;
  _labelStyle = tabBarConfig.labelStyle.merge(
    BaseTextStyle(
      color: commonConfig.brandPrimary,
      fontSize: commonConfig.fontSizeSubHead,
    ).merge(_labelStyle),
  );
  _unselectedLabelStyle = tabBarConfig.unselectedLabelStyle.merge(
    BaseTextStyle(
      color: commonConfig.colorTextBase,
      fontSize: commonConfig.fontSizeSubHead,
    ).merge(_unselectedLabelStyle),
  );
  _backgroundColor ??= tabBarConfig._backgroundColor;
  _tagNormalTextStyle = tabBarConfig.tagNormalTextStyle.merge(
    BaseTextStyle(
      color: commonConfig.colorTextBase,
      fontSize: commonConfig.fontSizeCaption,
    ).merge(_tagNormalTextStyle),
  );
  _tagSelectedTextStyle = tabBarConfig.tagSelectedTextStyle.merge(
    BaseTextStyle(
      color: commonConfig.brandPrimary,
      fontSize: commonConfig.fontSizeCaption,
    ).merge(_tagSelectedTextStyle),
  );
  _tagNormalBgColor ??= tabBarConfig._tagNormalBgColor;
  _tagSelectedBgColor ??= tabBarConfig._tagSelectedBgColor;
  _tagRadius ??= commonConfig.radiusSm;
  _tagSpacing ??= tabBarConfig._tagSpacing;
  _preLineTagCount ??= tabBarConfig._preLineTagCount;
  _tagHeight ??= tabBarConfig._tagHeight;
}