2014-02-13 51 views
0

我的問題的標題幾乎總結了我想問的問題在描述中,我將詳細描述我的問題。如何更改Android中ExpandableListView的背景顏色?

所以我有一個ExpandableListView,它在屏幕上打印出黑色的白色文字。當我按下列表時,它會被消耗,我可以選擇其中的細節。它看起來是這樣的:

|--------------------------| 
|black color    | 
| Title text(in white) | 
|       | 
|__________________________| 
| Item 1 (black text with white background) 
| Item 2     | 
| Item N...    | 

所以我的問題是如何改變的「文本標題」內的背景色,把一個限制在標題顯示的符號的數量?

這裏是我的XML文件:

<ScrollView 
    android:layout_width="fill_parent" 
    android:layout_height="228dp" > 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:background="#f4f4f4" 
     android:orientation="vertical" > 

     <ExpandableListView 
      android:id="@+id/lvExp" 
      android:layout_width="match_parent" 
      android:layout_height="485dp"   > 
     </ExpandableListView> 
    </LinearLayout> 
    </ScrollView> 

項目。 XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="55dip" 
android:orientation="vertical" > 

<TextView 
    android:id="@+id/lblListItem" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textSize="17dip" 
    android:paddingTop="5dp" 
    android:paddingBottom="5dp"   
    android:paddingLeft="?android:attr/expandableListPreferredChildPaddingLeft" /> 


</LinearLayout>  

Group.XML

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" 
android:padding="8dp" 
android:background="#000000"> 


<TextView 
    android:id="@+id/lblListHeader" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:paddingLeft="?android:attr/expandableListPreferredItemPaddingLeft" 
    android:textSize="17dp"   
    android:textColor="#f4f4f4" 
    android:background="#323232"/>//this only changes some part of the background just around the text ONLY 

</LinearLayout> 
+0

你是什麼意思「把限制在標題中顯示的符號數」? – Shahzeb

+0

例如,如果標題是「我愛吃肉」,屏幕上將出現 「我愛吃......」 – user3182266

+0

爲textview添加android:singleLine =「true」屬性 – Shahzeb

回答

1

在TextView的請嘗試以下屬性:

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:maxLines="1" 
    android:maxLength="10" 
    android:ellipsize="marquee"/> 
+0

很好謝謝你,最後一個問題是在字符數減少之後是否可以添加「...」? – user3182266

+1

那麼你是設置限制,如果字符數沒有超過這個限制,它會打印整個文本。你可以通過在java中覆蓋onTextChanged事件並在文本末尾添加「...」 – Shahzeb

+0

再次感謝你! – user3182266

0

在expandablelistadapter: 在getGroupView下

if (convertView == null) { 
      LayoutInflater infalInflater = (LayoutInflater) this.mContext 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      convertView = infalInflater.inflate(R.layout.listheader, null); 
     } 

:把THI S:

convertView.setBackgroundColor(Color.parseColor("#FFFFFF")); 

,並限制標題的字符在XML使用文本:

<TextView 
android:id="@+id/secondLineTextView" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:maxLines="1" 
android:maxLength="10" 
android:ellipsize="end"/>