繁体   English   中英

长文本颤振中的换行符

[英]Line Breaks in Long Text Flutter

如何在长文本小部件中创建换行符?

例如,我正在创建一个关于我自己的传记页面。 我希望能够显示三个段落。 但是目前,我正在一个大的文本小部件中输出这些段落,并且输出没有换行符来区分这些段落。 我怎样才能做到这一点?

像这样声明你的文本:

final String someText = 
"stuff for the 1st paragraph\n\n"
"stuff for the 2nd paragraph\n\n"
"stuff for the 3rd paragraph\n\n";

然后您可以像往常一样将其渲染在Text小部件中。

我来这里是想将代码中的长字符串分成多行。 从这个开始:

final longString = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.';

多行不换行

您可以通过执行以下操作使其在代码编辑器中全部可见:

final longString = 'Lorem ipsum dolor sit amet, consectetur adipiscing '
    'elit, sed do eiusmod tempor incididunt ut labore et dolore magna '
    'aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco '
    'laboris nisi ut aliquip ex ea commodo consequat. ';

或这个:

final longString = 'Lorem ipsum dolor sit amet, consectetur adipiscing ' +
    'elit, sed do eiusmod tempor incididunt ut labore et dolore magna ' +
    'aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco ' +
    'laboris nisi ut aliquip ex ea commodo consequat.';

不影响字符串的内容。 也就是说,不会添加换行符。

Lorem ipsum dolor sat amet,consectetur adipiscing elit,sed do eiusmod tempor incididunt ut Labore et dolore magna aliqua。 Ut enim ad minim veniam, quis nostrud exercitation ullamco Laboris nisi ut aliquip ex ea commodo consequat。

多行与新行

如果您确实希望保留换行符,则可以使用三重引号。

final longString = '''
Lorem ipsum dolor sit amet, 
consectetur adipiscing elit, 
sed do eiusmod tempor incididunt 
ut labore et dolore magna aliqua. 

Ut enim ad minim veniam, 
quis nostrud exercitation ullamco 
laboris nisi ut aliquip ex ea 
commodo consequat.
''';

它产生:

Lorem ipsum dolor 坐 amet,
consectetur adipiscing 精英,
sed 做 eiusmod 临时事件
ut Labore et dolore magna aliqua。

Ut enim ad minim veniam,
quis nostrud 练习 ullamco
Laboris nisi ut aliquip ex ea
commodo 结果。

分割段落

如前所述,只需在每个段落中添加两个\\n换行符即可将它们分开。 或者开头的\\t选项卡和结尾的换行符。

final paragraph1 = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.';
final paragraph2 = 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.';
final text = paragraph1 + '\n\n' + paragraph2;

Lorem ipsum dolor sat amet,consectetur adipiscing elit,sed do eiusmod tempor incididunt ut Labore et dolore magna aliqua。

Ut enim ad minim veniam, quis nostrud exercitation ullamco Laboris nisi ut aliquip ex ea commodo consequat。

如果您要进行大量字符串连接,请考虑使用StringBuffer

也可以看看

我假设您已经在原始文本中以某种方式告诉应该有一个换行符,例如\\n 如果你的段落是这样的: var text = "paragraph1\\n\\nparagraph2"; ,您可以执行以下操作:

var split = text.split('\n').map((i) {
  if (i == "") {
    return Divider();
  } else {
    return Text(i);
  }
}).toList();
var displayElement = Column(children: split);

返回displayElement ,每个段落之间将有一个分隔符元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM