长文本颤动中的换行符

时间:2018-08-07 18:11:37

标签: dart flutter

如何在长文本控件内创建换行符?

例如,我正在创建一个关于自己的传记页面。我想展示三段。但是目前,我正在一个大型Text Widget中输出这些段落,并且输出中没有换行符以区分这些段落。我该怎么办?

3 个答案:

答案 0 :(得分:6)

像这样声明您的文本:

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 :(得分: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,在每个段落之间都有一个分隔符。

答案 2 :(得分:0)

我来到这里是想将长字符串分成多行。从此开始:

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坐下,奉献己任,sius do eiusmod tempor incididunt ut Labore et dolore magna aliqua。尽量不要抽烟,不要因抽烟而锻炼,而要因抽烟而生。

多行换行

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

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 do eiusmod tempor incididunt
  劳动与劳动大亨阿利夸

     

使用enim ad minim veniam,
  quis nostrud锻炼ullamco
  每个人都需要做工
  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坐下,奉献己任,sius do eiusmod tempor incididunt ut Labore et dolore magna aliqua。

     

以最小的威力,以无拘无束的方式锻炼无礼的生活,并因此得出结论。