@@ -298,9 +298,10 @@ class TDThemeData extends ThemeExtension<TDThemeData> {
298298 if (themeConfig.containsKey (name)) {
299299 var theme = parseThemeData (name, themeConfig, extraThemeData);
300300 theme.light = theme;
301- if (darkName? .isNotEmpty ?? false ) {
301+ darkName ?? = '${name }Dark' ;
302+ if (themeConfig[darkName] != null ) {
302303 // 解析暗色模式
303- var darkTheme = parseThemeData (darkName! , themeConfig, extraThemeData);
304+ var darkTheme = parseThemeData (darkName, themeConfig, extraThemeData);
304305 darkTheme.light = theme;
305306 theme.dark = darkTheme;
306307 // 填充暗色模式缺失数据
@@ -340,10 +341,13 @@ class TDThemeData extends ThemeExtension<TDThemeData> {
340341
341342 static TDThemeData parseThemeData (String name, themeConfig, TDExtraThemeData ? extraThemeData) {
342343 var theme = _emptyData (name);
343- Map <String , dynamic > curThemeMap = themeConfig['$name ' ];
344+ Map <String , dynamic >? curThemeMap = themeConfig['$name ' ];
345+ if (curThemeMap? .isEmpty ?? true ) {
346+ return theme;
347+ }
344348
345349 /// 设置颜色
346- Map <String , dynamic >? colorsMap = curThemeMap['color' ];
350+ Map <String , dynamic >? colorsMap = curThemeMap? ['color' ];
347351 colorsMap? .forEach ((key, value) {
348352 var color = toColor (value);
349353 if (color != null ) {
@@ -352,31 +356,31 @@ class TDThemeData extends ThemeExtension<TDThemeData> {
352356 });
353357
354358 /// 设置颜色
355- Map <String , dynamic >? refMap = curThemeMap['ref' ];
359+ Map <String , dynamic >? refMap = curThemeMap? ['ref' ];
356360 refMap? .forEach ((key, value) {
357361 theme.refMap[key] = value;
358362 });
359363
360364 /// 设置字体尺寸
361- Map <String , dynamic >? fontsMap = curThemeMap['font' ];
365+ Map <String , dynamic >? fontsMap = curThemeMap? ['font' ];
362366 fontsMap? .forEach ((key, value) {
363367 theme.fontMap[key] = Font .fromJson (value);
364368 });
365369
366370 /// 设置圆角
367- Map <String , dynamic >? cornersMap = curThemeMap['radius' ];
371+ Map <String , dynamic >? cornersMap = curThemeMap? ['radius' ];
368372 cornersMap? .forEach ((key, value) {
369373 theme.radiusMap[key] = value.toDouble ();
370374 });
371375
372376 /// 设置字体
373- Map <String , dynamic >? fontFamilyMap = curThemeMap['fontFamily' ];
377+ Map <String , dynamic >? fontFamilyMap = curThemeMap? ['fontFamily' ];
374378 fontFamilyMap? .forEach ((key, value) {
375379 theme.fontFamilyMap[key] = FontFamily .fromJson (value);
376380 });
377381
378382 /// 设置阴影
379- Map <String , dynamic >? shadowMap = curThemeMap['shadow' ];
383+ Map <String , dynamic >? shadowMap = curThemeMap? ['shadow' ];
380384 shadowMap? .forEach ((key, value) {
381385 var list = < BoxShadow > [];
382386 (value as List ).forEach ((element) {
@@ -393,12 +397,12 @@ class TDThemeData extends ThemeExtension<TDThemeData> {
393397 });
394398
395399 /// 设置Margin
396- Map <String , dynamic >? marginsMap = curThemeMap['margin' ];
400+ Map <String , dynamic >? marginsMap = curThemeMap? ['margin' ];
397401 marginsMap? .forEach ((key, value) {
398402 theme.spacerMap[key] = value.toDouble ();
399403 });
400404
401- if (extraThemeData != null ) {
405+ if (extraThemeData != null && curThemeMap != null ) {
402406 extraThemeData.parse (name, curThemeMap);
403407 theme.extraThemeData = extraThemeData;
404408 }
0 commit comments