2013-02-14 162 views
2

我已經創建了3級ExpandableListView,並且存在問題,即用於第二級和第三級的TextViews不支持換行符,如果內容是太長。如果需要,它應該在多行上動態顯示。第一級的TextView可以自動完成,並且我實際上在所有三個TextView的xml中都有相同的設置。接下來是佈局xmls,其中id爲groupname的一個TextView用於第二級別(例如下圖中的第一個紅色X),id爲childname的那個用於第三級別(例如,第二級別中的第二個和第三個紅色X下圖)。它應該都像在圖片中的綠色鉤子。Android TextView不會在ListView中執行換行符(多行文本)

「singleLine = false」似乎不起作用。也嘗試了其他SO帖子中發現的一些不同的選項,但我已經testet沒有爲我工作。像ellipsize一樣,滾動horizo​​ntale,不同的layout_width等等。唯一能做的就是在xdp上設置一個固定的layout_width,但這不是動態的,我是對的?

如果有人可以幫助我,這將是偉大的。很感謝!

以下是截圖:

enter image description here

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="match_parent" > 

<TextView 
    android:id="@+id/childname" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginRight="60dp" 
    android:layout_marginLeft="60dp" 
    android:textColor="#AAAAAA" 
    android:singleLine="false" 
    android:text="" 
    android:gravity="center_vertical" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

<TextView 
    android:id="@+id/groupname" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_marginLeft="45dp" 
    android:layout_marginRight="60dp" 
    android:textColor="#555555" 
    android:singleLine="false" 
    android:gravity="center_vertical" 
    android:text="" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

回答

5

在XML

android:inputType="textMultiLine" 

添加TEX添加此行T使用編碼這樣的,在這裏你可以使用「\ n」添加換行符(但在這裏,你必須手動添加您想要的地方休息)

TextView txt1 = (TextView) findViewById(R.id.childname); 
txt1.setText("Hi \nHello \nHow are You"); 

結果將是


你好
你怎麼

編輯 接受的答案 - 刪除行「機器人:layout_alignParentLeft =「真」

+0

Thx,但它不是正確的方式。 inputType行會導致一個警告,即它只針對TextEdits,而不針對TextView。無論如何都試過了,它沒有改變什麼。手動中斷\ n是沒有選擇的,TextView的文本稍後由sqlite數據庫中的數據設置,並且這些數據經常變化以進行修復。我不知道爲什麼第一級的行被包好,其他人沒有。我已經添加了textcolor選項來檢查在執行時是否有任何改變,並且這是有效的。但不是linebreak,雖然我讀singleLine =「false」也是默認的。更多的想法? – 2013-02-14 03:31:17

+0

您是否嘗試刪除該行 'android:layout_alignParentLeft =「true」' 並嘗試? – 2013-02-14 03:37:03

+1

Thx Batz,沒有這條線它適合我。 – 2013-02-21 21:17:57

0

嘗試使用的LinearLayout而不是的RelativeLayout父爲的TextView

1

我有這個屬性添加到我裏面的ListView的TextView,並使其不換行正確。

android:maxWidth="xxxdp" 

F.Y.R.