initThemeConfig method
部分代码示意如下:
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;
}