长文字颤音中的换行符

问题描述 投票:5回答:3

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

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

dart flutter
3个回答
7
投票

声明你的文字是这样的:

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小部件中渲染它。


1
投票

我假设你已经在原始文本中有一些方法告诉我应该有一个换行符,例如\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,它将在每个段落之间有一个分隔符元素。


1
投票

我来到这里想要在多行代码中划分一个长字符串。从这开始:

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.';

Multi-line without new lines

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

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存有悲坐阿梅德,consectetur adipiscing ELIT,sed的tempor和活力,使劳动和悲伤,一些重要的事情要做eiusmod。多年来,我会来的,谁将会nostrud aliquip了她锻炼的优势,使刺激措施,如果学区和长寿。

Multi-line with new lines

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

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存有胡萝卜; 明尼阿波利斯本科开发商; 但是做occaecat时间和活力 UT labore等dolore蚤aliqua。

多年来来, nostrud行使任何学区 一起工作了吧,但要aliquip 便利的产品。

Dividing paragraphs

正如已经提到的,只需在每个段落中添加两个\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存有悲坐阿梅德,consectetur adipiscing ELIT,sed的tempor和活力,使劳动和悲伤,一些重要的事情要做eiusmod。

多年来,我会来的,谁将会nostrud aliquip了她锻炼的优势,使刺激措施,如果学区和长寿。

另见Meaning of Paragraph in Flutter classes

© www.soinside.com 2019 - 2024. All rights reserved.