initThemeConfig method
举例:
① 尝试获取最近的配置 topRadius 若配不为 null,直接使用该配置.
② topRadius 若为 null,尝试使用 全局配置中的配置 BrnFormItemConfig.
③ 如果全局配置中的配置同样为 null 则根据 configId 取出全局配置。
④ 如果没有配置 configId 的全局配置,则使用 Bruno 默认的配置
Implementation
@override
void initThemeConfig(
String configId, {
BaseCommonConfig? currentLevelCommonConfig,
}) {
super.initThemeConfig(
configId,
currentLevelCommonConfig: currentLevelCommonConfig,
);
/// 用户全局form组件配置
FormItemConfig formItemThemeData =
BaseThemeConfig.instance.getConfig(configId: configId).formItemConfig;
_backgroundColor ??= formItemThemeData.backgroundColor;
_titlePaddingSm ??= formItemThemeData.titlePaddingSm;
_titlePaddingLg ??= formItemThemeData.titlePaddingLg;
_optionSelectedTextStyle = formItemThemeData.optionSelectedTextStyle.merge(
BaseTextStyle(
color: commonConfig.brandPrimary,
fontSize: commonConfig.fontSizeSubHead,
).merge(_optionSelectedTextStyle),
);
_optionTextStyle = formItemThemeData.optionTextStyle.merge(
BaseTextStyle(
color: commonConfig.colorTextBase,
fontSize: commonConfig.fontSizeSubHead,
).merge(_optionTextStyle),
);
_headTitleTextStyle = formItemThemeData.headTitleTextStyle.merge(
BaseTextStyle(
color: commonConfig.colorTextBase,
fontSize: commonConfig.fontSizeHead,
).merge(_headTitleTextStyle),
);
_errorPadding ??= EdgeInsets.only(
left: commonConfig.hSpacingLg,
right: formItemThemeData.errorPadding.right,
top: commonConfig.vSpacingXs,
bottom: formItemThemeData.errorPadding.bottom,
);
_subTitlePadding ??= EdgeInsets.only(
left: commonConfig.hSpacingLg,
right: formItemThemeData.subTitlePadding.right,
top: commonConfig.vSpacingXs,
bottom: formItemThemeData.subTitlePadding.bottom,
);
_formPadding ??= EdgeInsets.only(
left: formItemThemeData.formPadding.left,
right: commonConfig.hSpacingLg,
top: commonConfig.vSpacingLg,
bottom: commonConfig.vSpacingLg,
);
_tipsTextStyle = formItemThemeData.tipsTextStyle.merge(
BaseTextStyle(
color: commonConfig.colorTextSecondary,
fontSize: commonConfig.fontSizeBase,
).merge(_tipsTextStyle),
);
_disableTextStyle = formItemThemeData.disableTextStyle.merge(
BaseTextStyle(
color: commonConfig.colorTextDisabled,
fontSize: commonConfig.fontSizeSubHead,
).merge(_disableTextStyle),
);
_contentTextStyle = formItemThemeData.contentTextStyle.merge(
BaseTextStyle(
color: commonConfig.colorTextBase,
fontSize: commonConfig.fontSizeSubHead,
).merge(_contentTextStyle),
);
_hintTextStyle = formItemThemeData.hintTextStyle.merge(
BaseTextStyle(
color: commonConfig.colorTextHint,
fontSize: commonConfig.fontSizeSubHead,
).merge(_hintTextStyle),
);
_titleTextStyle = formItemThemeData.titleTextStyle.merge(
BaseTextStyle(
color: commonConfig.colorTextBase,
fontSize: commonConfig.fontSizeSubHead,
).merge(_titleTextStyle),
);
_subTitleTextStyle = formItemThemeData.subTitleTextStyle.merge(
BaseTextStyle(
color: commonConfig.colorTextSecondary,
fontSize: commonConfig.fontSizeCaption,
).merge(_subTitleTextStyle),
);
_errorTextStyle = formItemThemeData.errorTextStyle.merge(
BaseTextStyle(
color: commonConfig.brandError,
fontSize: commonConfig.fontSizeCaption,
).merge(_errorTextStyle),
);
_optionsMiddlePadding ??= formItemThemeData.optionsMiddlePadding;
}