我试图用Flutter(具体来说是 ul )表示HTML代码,并对其进行最小化样式设置。我尝试使用了 flutter_html 软件包,并且看到有一个customRender选项。
基本上,我想做的是:
我对Flutter和Dart还是很陌生,所以我无法使customRender正常工作。也许有人知道如何解决它?还是有更好的方法呢?
添加一些代码以供引用。
import 'package:flutter_html/flutter_html.dart';
// ... Some non-essential code ...
Align(
alignment: Alignment.centerLeft,
child: Html(
data: """${unorderedList}""",
customRender: (node, children) {
if (node is dom.Element) {
switch (node.localName) {
case "li":
return Column(children: children);
}
}
return null;
},
)
)
注意:取出 customRender 块会产生一个左边距。
编辑: vb10 解决方案的补充,允许多行列表项文本。
Wrap customListItem(dom.Element node) {
return Wrap(
spacing: 25.0,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
// Top padding adjusts for text offset, set it to the font size.
padding: const EdgeInsets.only(top: 18.0, right: 15.0),
child: CircleAvatar(radius: 4)
),
Expanded(child: Text(node.text)),
]
),
SizedBox(height: 25.0),
]
);
}
最佳答案
您不会忘记两个规则:
看下面的代码:
Html(
data: data,
useRichText: false,
customRender: htmlCustomRenderer,
)
如果您详细了解this。(lib / html-parser)
结果:
关于html - Flutter-呈现HTML无序列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61606636/