【问题标题】:How to make html in HTML() widget selectable如何使 HTML() 小部件中的 html 可选
【发布时间】:2020-12-06 10:13:21
【问题描述】:

我有一个颤振博客应用程序,我正在使用这个 package 来呈现博客 HTML 内容,我希望这个内容是可选的,我知道 SelectableText() 小部件,但这不能用于呈现 HTML .

有人知道如何让我的 HTML 文本可以从移动设备中选择吗?

【问题讨论】:

    标签: flutter dart mobile


    【解决方案1】:

    编辑 - 现在无需任何变通方法即可。使用 K.Amanov 的答案。

    我使用flutter_markdownhtml2md 包实现了这一点。不是一个理想的解决方案,因为 markdown 不支持所有的 html 标签。

    import 'package:html2md/html2md.dart' as html2md;
    import 'package:flutter_markdown/flutter_markdown.dart';
    ...
    ...
    MarkdownBody(
      selectable: true,
      data: html2md.convert(
        'Your HTML Text here',
        ),
    ),
    

    【讨论】:

      【解决方案2】:

      几个小时前,flutter_html 合并到解决了这个问题的主提交。不对,您可以像这样将插件导入您的项目:

      flutter_html:
          git:
            url: git://github.com/Sub6Resources/flutter_html.git
            ref: master
      

      也许在您阅读这篇文章的时候,最后的更改将发布到 pub.dev

      然后,使用 SelectableHtml 代替 Html:

      SelectableHtml(
        data: menuButton.content ?? "",
        style: {
          "body": Style(
            margin: EdgeInsets.zero,
            color: Theme.of(context).primaryColor,
          ),
        },
        onLinkTap: (link, renderContext, map, element) async {
          if (link != null && link.isNotEmpty) {
            await launch(link);
          }
        },
      )
      

      【讨论】:

      • 不好,SelectableHtml 不支持customRenderonImageTap,有点让它对富html 没用。
      【解决方案3】:

      图书馆flutter_html:

      在代码中:

      SelectableHtml(
           data: 'Your text with html tag',
      );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-01-26
        • 1970-01-01
        • 2019-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-03
        • 2010-10-26
        相关资源
        最近更新 更多