簡體   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