2013-04-24 8 views
5

Mam użyciu rozszerzalny ListView ze wskaźnikiem grupa wskazań prawej stronie listy, w tym ja nazwa tytuł jest pojedyncza linia moje wyjście jak tenpowiększana wysokość tytułu wyświetlania listy widoków listy?

enter image description here

w powyższy obrazek, mój wskaźnik jest dobry wygląd. poniższy obrazek mój wskaźnik patrząc nie to dobrze rozwijać, dlaczego tak się stało

enter image description here

tutaj jest mój kod

mExpandableList = (ExpandableListView)findViewById(R.id.expandable_list); 
    mExpandableList.setIndicatorBounds(width - GetPixelFromDips(40), width - GetPixelFromDips(10)); 

xml jest

 <ExpandableListView 
    android:id="@+id/expandable_list"   
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:groupIndicator="@drawable/group_indicator" /> 

group_indicator.xml jest

<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item 
     android:drawable="@drawable/arrow_down"  android:state_expanded="true"/> 
    <item android:drawable="@drawable/arrow_up"/> 
</selector> 

ktoś ma pomysł pomocy ten ........

+0

Który układ używasz do grupowania elementów? – AlexBcn

+0

@ Linearblinklinelayout ......... – NagarjunaReddy

Odpowiedz

0

wyglądają tak, że Twój używanego na custom_group_layout.xml kiedy nadmuchać go na swojej getGroupView() swojej adapterClass. Widok wskaźnika może mieć element wypełnienia i dlatego element rozwija ikonę, gdy grupa zawiera więcej wierszy tekstu.

An example

2

rozwiązać ten problem bardziej skomplikowany sposób, ale to działa:

Fragment pliku układ z możliwością rozszerzenia listy:

<ExpandableListView 
    android:id="@+id/accordion" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:groupIndicator="@android:color/transparent" 
    android:scrollbars="none" > 
</ExpandableListView> 

układ dla elementu grupowego lista

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/accordion_main_background" 
    android:minHeight="50dip" 
    android:orientation="vertical" 
    android:padding="@dimen/screenPromoTaskRootPadding" > 

    <TextView 
     android:id="@+id/accordionTitle" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_marginRight="10dip" 
     android:layout_toLeftOf="@+id/accordionIndicator" 
     android:background="@color/accordionOrangeBackColor" 
     android:paddingLeft="2dip" 
     android:paddingRight="2dip" 
     android:textColor="@color/blackTextColor" 
     android:textSize="@dimen/accordMainTextSize" /> 

    <ImageView 
     android:id="@+id/accordionIndicator" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:src="@drawable/arrow_up_np" /> 

</RelativeLayout> 

oraz w działaniu. configuredDataCollection była po prostu listą zawierającą dane dla ExpandableListAdapter. Również jest to fragment implementacji akordeonu, więc grupa listów zwinnie inne elementy po jednym wybranym.

ExpandableListView accordion = (ExpandableListView) findViewById(R.id.accordion); 
accordion.setOnGroupClickListener(this); 

@Override 
public boolean onGroupClick(ExpandableListView paramExpandableListView, View paramView, int paramInt, long paramLong) { 
    ImageView icon=(ImageView)paramView.findViewById(R.id.accordionIndicator); 
    for (int i = 0; i < adapterDataCollection.size(); i++) { 
     if (i == paramInt) { 
      if (paramExpandableListView.isGroupExpanded(i)) { 
       paramExpandableListView.collapseGroup(i); 
       icon.setImageResource(R.drawable.arrow_up_np); 
      } else { 
       paramExpandableListView.expandGroup(i); 
       icon.setImageResource(R.drawable.arrow_down_np); 
      } 
     } else { 
      paramExpandableListView.collapseGroup(i); 
      icon.setImageResource(R.drawable.arrow_up_np); 
     } 
    } 
    paramExpandableListView.invalidate(); 
    return true; 
} 
1

można ustawić wysokość wskaźnika przez [Layer-LIST] http://developer.android.com/guide/topics/resources/drawable-resource.html#LayerList

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item 
     android:bottom="2dp" 
     android:drawable="@drawable/shrink" 
     android:top="2dp"/> 

</layer-list> 

selektora

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:drawable="@drawable/layer_shrink" android:state_expanded="true"/> 
1

Należy użyć 9 łat zdjęcie strzałką. Możesz kierować obraz poniżej.

right_arrow_9_patch_image

i strzałka w dół można skorzystać z poniższego obrazka

down_arrow_9_patch_image

Nie zapomnij dołączyć ".9" do nazwy obrazu jak " your_image_name.9 .png "

Powiązane problemy