我正在尝试使用 flutter_markdown 包来标记一些内容。但对于多个换行符,它无法正常工作。
String exampleData="\n\nLine 1. \n\nLine2.\n\n\n\n### Heading \n\nLine3";
Markdown(data: exampleData,)
我尝试使用换行符“
”,但没有成功
String exampleData="Line 1. \n\nLine2. <br /> <br /> \n\n### Heading \n\nLine3";
有人可以帮我解决这个换行符或任何替代包吗。
查看下面的链接!!
br 标签不起作用,因此使用 3 个反斜杠 + n 代替 br 标签
String exampleData="Line 1. \\\nLine2. \\\n## Heading \\\nLine3";
一个不错的解决方法。
从版本 0.6.8 开始,Flutter_markdown 包中添加了一个名为
paddingBuilders
的新功能。您可以向 Markdown 中可用的所有块添加填充,如下所示。
MarkdownBody(
data: markDown,
paddingBuilders: <String,
MarkdownPaddingBuilder>{
'p': PPaddingBuilder(),
'h3': H3PaddingBuilder(),
},
)
您必须像下面一样定义填充生成器。
class PPaddingBuilder extends MarkdownPaddingBuilder {
@override
EdgeInsets getPadding() => const EdgeInsets.only(top: SGSpacing.xlarge);
}
class H3PaddingBuilder extends MarkdownPaddingBuilder {
@override
EdgeInsets getPadding() => const EdgeInsets.only(top: SGSpacing.xxlarge);
}
源代码中
Flutter_markdown中可用的所有
blockTag
列表如下:
const List<String> _kBlockTags = <String>[
'p',
'h1',
'h2',
'h3',
'h4',
'h5',
'h6',
'li',
'blockquote',
'pre',
'ol',
'ul',
'hr',
'table',
'thead',
'tbody',
'tr'
];
PS:填充不适用于内联标签。仅适用块标签。
只需添加“\u2028”作为换行符。 这是 Unicode 字符 '行分隔符'
将
<br>
替换为 \x03
,如下所示。 \x03
是 ASCII 文本结束 (ETX
):
text.replaceAll('<br>', '\x03');
嗨,我找到了这个包https://pub.dev/packages/markdown_widget
这不是一个完整的解决方案,但这个包支持一些 html 标签,例如 <\br>,在这种情况下,我在 markdown 中添加了该标签并且可以工作
根据一个现已删除的问题,flutter_markdown 支持在行尾使用反斜杠来显式换行。使用此语法,您的示例将是:
\
\
Line 1.\
\
Line2.\
\
\
\
### Heading
\
Line3
所有给定的解决方案都不适合我的用例。我有一个文本,其中新行标记为 。如果我想插入,就会出现问题 。 我解决了这个问题如下:
text.replaceAll('\n\n', '''
\n
\u200B
\n
'''
);
这会插入一个零宽度的空格,足以让我有两条新行。
就我而言。
text.replaceAll('\n', ' \n');