2013-04-24 10 views
5

Ben başlık adı bunda, listenin sağ tarafını göstermek Grup göstergeli bir genişletilebilir liste görünümü var kullanan var tek satır benim gösterge iyi görünüyor yukarıdaki resimde bugenişletilebilir liste görünümü göstergesi başlık yüksekliği?

enter image description here

gibi benim çıkıştır. Aşağıdaki resimde benim göstergesi o genişlemez iyi görünümlü , neden bu burada

enter image description here

benim kodudur gerçekleşmesi

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

xml

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

group_indicator.xml

olduğu
<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> 

herhangi biri size adapterClass ait getGroupView() senin üzerine şiştiğinde bu bir ........

+0

Grup öğeleri için hangi düzeni kullanıyorsunuz? – AlexBcn

+0

@AlexBcn linearlayout ......... – NagarjunaReddy

cevap

0

senin senin custom_group_layout.xml kullandığınız görünümü Bakın fikri yardım var. Göstergenin görünümünde bir fill_parent olabilir ve bu yüzden grubunuz daha fazla metin satırı içerdiğinde simgeyi genişletiyor.

An example

2

bu sorunu daha karmaşık bir yol çözmek ama işe yarıyor: genişletilebilir liste ile düzen dosyasının

Fragment: Liste grup elemanı için

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

Düzeni

<?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> 

ve Etkinlikte. adaptedDataCollection, yalnızca ExpandableListAdapter için veri içeren bir Liste idi. Ayrıca, Akordeon uygulamasının bir parçası olduğundan, liste grubu seçildikten sonra diğer öğeleri daraltacaktır.

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

sen [katman-listesi] Okun için 9 yama resim kullanmak gerekir

<?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

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> 

seçici tarafından gösterge yüksekliğini ayarlayabilirsiniz. Aşağıda körük resmine bakabilirsiniz.

right_arrow_9_patch_image

ve aşağı için

down_arrow_9_patch_image

Don `t "your_image_name.9 gibi görüntü adına" .9" eklenecek unutmak Aşağıdaki resimde kullanabilirsiniz ok .png "