html - Flutter-呈现HTML无序列表

标签 html flutter dart

我试图用Flutter(具体来说是 ul )表示HTML代码,并对其进行最小化样式设置。我尝试使用了 flutter_html 软件包,并且看到有一个customRender选项。

基本上,我想做的是:

  • 在每个 li 元素下添加一个空格。
  • 删除左边距(默认情况下,在flutter_html上位于该位置)。
  • 更改项目符号点的颜色。不需要,但是会很好。

  • 我对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),
        ]
      );
    }
    

    最佳答案

    您不会忘记两个规则:

  • 您可以创建自定义窗口小部件,以便将富文本格式设置为false(默认为True)
  • 您有自定义窗口小部件选项,需要页面空白(例如项目间距)。

  • 看下面的代码:
     Html(
        data: data,
        useRichText: false,
        customRender: htmlCustomRenderer,
      )
    

    enter image description here

    如果您详细了解this。(lib / html-parser)

    结果:enter image description here

    关于html - Flutter-呈现HTML无序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61606636/

    相关文章:

    dart - ListView 不刷新,而附加列表会刷新(Flutter)

    html - CSS 滚动菜单 - 下拉菜单无法正确滚动

    jquery - 单击整页图像

    flutter - Flutter:如何在CustomPainter对象中设置动态颜色

    flutter - 参数类型 'bool' 无法分配给参数类型 'voidcallback()'

    Dart:枚举上的扩展方法不起作用为类定义的 "The method isn' t"

    html - CSS - 使用大图像作为背景(性能)

    php - DOMCrawler 纯文本

    flutter - 问题 SingleChildScrollView 与 PageView flutter

    flutter - 如何在窗口小部件外部访问提供商?