flutter_markdown 多个换行符不起作用
flutter_markdown multiple line breaks not working
我正在尝试 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";
输出是
谁能帮我解决这个换行符或任何替代包。
我发现了一个讨厌的技巧(不是解决方案),在这种特定情况下可能会有帮助。我不推荐它,但到目前为止找不到使用 flutter_markdown 的任何其他解决方法,而且我也找不到任何其他替代包。
您可以利用三重撇号添加垂直 space。
这是一个糟糕的解决方法,但到目前为止找不到更好的方法来添加垂直 space。
查看下方 link!!
br 标签无效,因此使用 3 个反斜杠 + n 代替 br 标签
String exampleData="Line 1. \\nLine2. \\n## Heading \\nLine3";
像这样用 \x03
替换你的 <br>
。 \x03
是 ASCII 中文本 (ETX
) 的结尾:
text.replaceAll('<br>', '\x03');
体面的工作。
从版本 0.6.8 开始,在名为 paddingBuilders
的 Flutter_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:填充对内联标签不起作用。仅块标记适用。
您好,我找到了这个包 https://pub.dev/packages/markdown_widget
这不是一个完整的解决方案,但这个包支持一些标签 os html,比如 <\br>,在这种情况下,我在 markdown 中添加了那个标签并且有效
我的解决方案,当使用String单行时,不使用"""或''',使用\n和2 space
下面的代码显示相同 UI
var _markdownSingleLine = 'Demo \n Break \n line';
var _markdownMultiLine =
'''
Demo
Break
line
''';
Demo break line
根据 now deleted issue,flutter_markdown 支持在行尾使用反斜杠的显式换行符。使用此语法,您的示例将是:
\
\
Line 1.\
\
Line2.\
\
\
\
### Heading
\
Line3
我正在尝试 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";
输出是
谁能帮我解决这个换行符或任何替代包。
我发现了一个讨厌的技巧(不是解决方案),在这种特定情况下可能会有帮助。我不推荐它,但到目前为止找不到使用 flutter_markdown 的任何其他解决方法,而且我也找不到任何其他替代包。
您可以利用三重撇号添加垂直 space。
这是一个糟糕的解决方法,但到目前为止找不到更好的方法来添加垂直 space。
查看下方 link!!
br 标签无效,因此使用 3 个反斜杠 + n 代替 br 标签
String exampleData="Line 1. \\nLine2. \\n## Heading \\nLine3";
像这样用 \x03
替换你的 <br>
。 \x03
是 ASCII 中文本 (ETX
) 的结尾:
text.replaceAll('<br>', '\x03');
体面的工作。
从版本 0.6.8 开始,在名为 paddingBuilders
的 Flutter_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:填充对内联标签不起作用。仅块标记适用。
您好,我找到了这个包 https://pub.dev/packages/markdown_widget
这不是一个完整的解决方案,但这个包支持一些标签 os html,比如 <\br>,在这种情况下,我在 markdown 中添加了那个标签并且有效
我的解决方案,当使用String单行时,不使用"""或''',使用\n和2 space 下面的代码显示相同 UI
var _markdownSingleLine = 'Demo \n Break \n line';
var _markdownMultiLine = ''' Demo
Break
line ''';
Demo break line
根据 now deleted issue,flutter_markdown 支持在行尾使用反斜杠的显式换行符。使用此语法,您的示例将是:
\
\
Line 1.\
\
Line2.\
\
\
\
### Heading
\
Line3