我有一个flutter博客应用程序,我正在使用这个包来呈现博客HTML内容,我希望这个内容是可选的,我知道SelectableText()
小部件,但它不能用于呈现HTML。
有人知道我如何从手机上选择HTML文本吗?
几个小时前,在flaft_html中,合并到master提交,解决了这个问题。对不对,你可以这样导入插件到你的项目:
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);
}
},
)
编辑-现在可以不用任何变通方法了。使用K.Amanov的答案。
我使用flatter_markdown和html2md软件包实现了这一点。这不是一个理想的解决方案,因为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',
),
),
只需将其包装在SelectionArea()
中即可。
例如:
SelectionArea(
child: Html(
data: '<p>Some data</p>',
),
);
现在可以选择渲染的html内容。
其他答案建议的SelectableHtml()
小部件存在缺陷,正如他们在pub.dev上的文档中所述,对我来说效果不佳
库flutter_html:
代码中:
SelectableHtml(
data: 'Your text with html tag',
);