我们的应用程序中有主题设置,因此我们使用如下所示的 HTML 小部件。使用 .fromTextStyle 来应用样式效果很好,它与 BuildContext 配合得很好,并且能够删除元素的填充和边距。我无法弄清楚的是,如何将两者结合起来,同时仍然保持使用我们的自定义主题的能力。
我们当前的代码:
return Html(
data: '<p>$excerpt</p>',
style: {
"p": Style.fromTextStyle(context.textTheme.regular.bodyMDSerif),
"body": Style(
padding: HtmlPaddings.zero,
margin: Margins.zero,
),
},
);
我想做的是:
return Html(
data: '<p>$excerpt</p>',
style: {
"p": Style( // Apply custom theming AND removing padding/margins
textStyle: context.textTheme.regular.bodyMDSerif,
padding: HtmlPaddings.zero,
margin: Margins.zero,
)
"body": Style(
padding: HtmlPaddings.zero,
margin: Margins.zero,
),
},
);
关于如何做到这一点有什么建议吗?
您可以使用Style类的
copyWith
方法:
return Html(
data: '<p>$excerpt</p>',
style: {
"p": Style.fromTextStyle(context.textTheme.regular.bodyMDSerif).copyWith(
padding: HtmlPaddings.zero,
margin: Margins.zero,
),
"body": Style(
padding: HtmlPaddings.zero,
margin: Margins.zero,
),
},
);