2009-08-31 10 views

Odpowiedz

5

Możesz wypróbować metodę ExpandableListView pod nazwą setGroupIndicator(Drawable).

+0

Cześć, Ta metoda dodaje ikonę do wszystkich rodziców, ale jeśli chcę dodać oddzielną ikonę dla każdego z rodziców odpowiednio. Jest to możliwe. – Sam97305421562

+0

Jeśli chcesz naprawdę dostosować układ grupy, dlaczego nie spróbujesz użyć lub podklasy SimpleExpandableListAdapter? Ustaw niestandardowy zasób dla extendedGroupLayout i załaduj potrzebny obraz na getGroupView (int, boolean, View, ViewGroup). Życzymy powodzenia i komentarza, gdy zobaczysz/wypróbujesz to. –

1

ok

public View getGroupView(int groupPosition, boolean isExpanded, View convertView, 
      ViewGroup parent) { 

    if(getChildrenCount(groupPosition)==0) 
    { 
      // how do i hide the group indicator ? 

    } 

Tak, jak można zmodyfikować wskaźnik grupy dla pustych grup?

13

Można również zdefiniować własne groupIndicator w XML:

pierwsze zdefiniować własną rozciągliwej (nazwałem go list_view_group_indicator.xml i umieścić go w katalogu rozciągliwej)

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

następnie użyć go jako rozciągliwej dla expandableListview

<ExpandableListView android:id="@+id/server_show_list" 
    android:layout_width="fill_parent"android:layout_height="wrap_content" 
    android:groupIndicator="@drawable/list_view_group_indicator" /> 
+0

to działa, dziękuję –

0
indicator=(ImageView)convertView.findViewById(R.id.icon_img); 
    if (getChildrenCount(groupPosition) == 0) { 
     indicator.setVisibility(View.INVISIBLE); 
    } 
    else { 
     indicator.setVisibility(View.VISIBLE); 
     indicator.setImageResource(isExpanded ? 
     R.drawable.ic_arrow_up : R.drawable.ic_arrow_down); 
    } 
Powiązane problemy