2010-05-15 84 views
198

當我在xml中定義TextView時,如何爲其添加新行? \n似乎不起作用。如何在Android中向TextView添加換行符?

<TextView 
    android:id="@+id/txtTitlevalue" 
    android:text="Line1: \n-Line2\n-Line3" 
    android:layout_width="54dip" 
    android:layout_height="fill_parent" 
    android:textSize="11px" /> 
+1

您的代碼確實對我有用。你得到什麼,而不是多行文本? – 2010-05-15 16:39:59

+2

在可視化編輯器中顯示爲文本\ n – Pentium10 2010-05-15 19:51:09

回答

239

不要相信可視化編輯器。 你的代碼在emu中工作。

+0

謝謝你,你拯救了我的一天。 – 2015-10-17 11:24:49

7

請確保您的\ n位於「\ n」中才能正常工作。

54

嘗試:

android:lines="2"

\n應該工作。

+0

我的textview可能比2行更長。它是一個控制。它可以是任何事情。 – dropsOfJupiter 2011-03-18 01:44:55

+4

使用android:maxLines =「10」,它像你想要的工作:) – 2011-09-30 14:16:37

27

我認爲這與你的HTM.fromHtml(subTitle)調用有關:「\ n」並不意味着bupkis爲HTML。嘗試<br/>而不是「\ n」。

+1


不起作用。
作品 – 2011-08-17 21:23:39

+19

@androidevAlex這是因爲它是
,而不是
2013-02-03 20:39:12

4

此外,您可以添加<br>而不是\ n。

然後你就可以添加文字TexView:

articleTextView.setText(Html.fromHtml(textForTextView)); 
+0

不是在XML中,你不能。它給出了一個編譯錯誤 - 「android:text」不能包含< or >個字符。 – Timmmm 2012-10-22 12:12:22

4

如果調試,你會看到字符串實際上是 「\ \ r \ \ n」 或 「\ \ N」,即它逃脫。所以,如果你按摩這個字符串,爲了擺脫額外的\,你會得到你的解決方案。這是真的,尤其是如果你正在從數據庫中讀取。

+1

這是對我而言缺少的一塊拼圖。 – DataGraham 2012-12-20 19:34:43

19

首先,把這個在你的TextView:

android:maxLines="10" 

在你的TextView的文本,然後使用\n

maxLines使得TextView最多隻有這麼多行。您可以選擇其他號碼:)

+0

@ user1387035沒問題:) – 2012-08-30 12:00:21

+0

按預期工作..感謝您 – GvSharma 2017-10-14 05:40:24

39

嘗試System.getProperty("line.separator");

+0

謝謝 - 這是什麼修復我的問題。 +1給你:) – Cullub 2015-08-05 20:59:28

1

你需要把在字符串的XML文件中的「\ n」不在頁面佈局。

7

我只是解決同樣的問題,下面把屬性的XML

android:lines="2" android:maxLines="4" android:singleLine="false" 

工作。 Html.fromHtml("text1 <br> text2").toString()也工作。

+0

這還是相關的,謝謝!我有maxLines,但我沒有singleLine = false。 – 2013-10-18 10:17:14

1

確保您使用的your_package.R 而不是android.R

4

需要保持

1. android:maxLines="no of lines"

2。並使用\n用於獲取下一行

14

嘗試了上述所有的,沒有造成渲染換行符逃逸字符以下解決我自己的一些研究:

string = string.replace("\\\n", System.getProperty("line.separator")); 
  1. 使用替代方法你需要過濾逃脫換行符(如'\\\n'

  2. 只有這樣,換行的每個實例'\n'逃脫字符被渲染入T他實際的換行符

在這個例子中我使用了谷歌的Apps腳本NoSQL數據庫(ScriptDb中)與JSON格式化數據。

乾杯:D

+1

這適用於我:replace(「\\ n」,System.getProperty(「line.separator」)); – slott 2015-04-21 08:47:53

+0

寧可,string = string.replaceAll(「\\\ n」,System.getProperty(「line.separator」)); – user846316 2015-10-25 21:32:40

7

這解決了我的問題。

stringVar.replaceAll("\\\\n", "\\\n"); 
+0

感謝好友... – 2014-03-28 18:18:11

+0

這對我的代碼工作正常。 – 2015-01-11 17:25:43

-7

使用記事本+ +,並按照步驟:

  1. 加載XML在記事本++。
  2. 點擊替換。
  3. 並將\ n全部替換爲\ n。 (查找 - > \ n替換 - > \ n)

而且你很好走。

3

你需要把\ n的文件string.xml

<string name="strtextparkcar">press Park my Car to store location \n</string> 
8
<TextView 
    android:id="@+id/txtTitlevalue" 
    android:text="Line1: \r\n-Line2\r\n-Line3" 
    android:layout_width="54dip" 
    android:layout_height="fill_parent" 
    android:textSize="11px" /> 

我認爲這會工作。

1

RuDrA05的回答很好,當我在eclipse上編輯XML時它不起作用,但是當我用記事本++編輯XML時,它確實起作用。如果我讀保存Eclipse或記事本+

也許是關係到編碼的TXT文件

同樣的事情正在發生。

6

System.getProperty("line.separator");這項工作適合我。

+0

謝謝,非常有用的提示 – 2015-10-28 13:31:52

0

在TextView的新生產線只需添加\ n在文本 它工作的中間..

+0

但答案涉及到的問題[鏈接](http://stackoverflow.com/questions/2840608/how-do-i-add-a-newline-to-a-textview-in-android )不是「你的」問題... – 2015-07-10 09:49:07

+0

omg..sorry困惑me.please編輯你的答案..我改變我的投票正面。 – 2015-07-10 10:55:43

+0

謝謝你的男人.... – 2015-07-10 11:05:12

5

我的2美分,採用Android電視。

添加\n在XML字符串,而閱讀:

public void setSubtitle(String subtitle) { 
    this.subtitle = subtitle.replace("\\n", System.getProperty("line.separator")); 
} 
0

這工作得很好。檢查它的應用程序。

<TextView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Text 1\nText 2\nText 3"/> 
0

如果TextView的是在任何佈局(LinearLayout中例如),嘗試將取向屬性改變爲垂直作爲 android:orientation="vertical"針對佈局或更改TextView屬性android:singleLine="true"後它來創建一個新行。這樣做的

4

一種方法是使用HTML標籤::

txtTitlevalue.setText(Html.fromHtml("Line1"+"<br>"+"Line2" + " <br>"+"Line3")); 
1

邊注:使用

android:inputType="textCapCharacters"

或類似似乎停止工作的\n善用文字。