2014-02-13 4 views
0

Название моего вопроса в значительной степени подводит итог тому, что я хочу задать, поэтому в описании я подробно опишу свой вопрос.Как изменить цвет фона ExpandableListView на Android?

Итак, у меня есть ExpandableListView, и он распечатывается на экране черным цветом с белым текстом внутри. Когда я нажимаю на список, он расходуется, и я могу выбрать детали в нем. Это выглядит примерно так:

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

Так что мой вопрос заключается в том, чтобы изменить цвет фона внутри «Текст Title» и поставить ограничение на количество символов, отображаемых в названии?

Вот мои 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

Добавить android: singleLine = "true" свойство textview – 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

Ну, вы устанавливаете лимит, и если количество символов не превышает этого предела, он печатает весь текст. вы можете сделать это, переопределив событие onTextChanged в java и добавьте «...» в конце текста – 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); 
     } 

: положить Тхи 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"/> 
Смежные вопросы