2012-08-27 17 views
5

Mam następujący ExpandableListView:Android ExpandableListView dzielnik jest niewidoczny

<ExpandableListView 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:id="@+id/listView" 
      android:groupIndicator="@android:color/transparent" 
      android:background="@color/app_background" 
      android:scrollingCache="false" 
      android:choiceMode="none" 
      android:divider="@color/gray_dark" 
      android:dividerHeight="2dp" 
      android:childDivider="@color/gray_dark" 
      android:cacheColorHint="@color/app_background"/> 

Problem, który mam jest, że rozszerzalna widoku listy nie rysujące dzielniki lub przynajmniej nie są widoczne .. dodaję niestandardowy widok jako widok grupowy, a także niestandardowe elementy listy w rozwijanym adapterze. Czy to może być problem?

Czy ktoś wie, co mogę zrobić, aby włączyć dzielniki do listy dzieci?

Z góry dziękuję.

+0

Czy jesteś „dodanie” custom 'View's do listy poprzez' Adapter' lub przez coś podobnego '(((ViewGroup) findViewById R.id.listView)). AddView (dziecko) '? Jeśli to drugie, nie będzie działać tak, jak oczekujesz. – user113215

+0

Dodaję niestandardowe widoki za pośrednictwem adaptera – Cata

Odpowiedz

13

Wydaje się, że miałem problem na moim rozbudowy Adapter .. ja zastąpiona następującą metodę:

@Override 
public boolean areAllItemsEnabled() { 
    return true; 
} 

zamiast wrócić prawda Wyszedłem metodę powrotu i fałszywe to był problem ... Jeśli ktoś ma ten problem, sprawdź tę metodę i upewnij się, że zwraca ona true, a nie false.

pamiętać, że nie jest konieczne, aby zastąpić tę metodę, jeśli przedłużyć BaseExpandableListAdapter

+13

Wspaniale, to mnie denerwowało przez dobrą godzinę lub tak :) Dla przyszłego odniesienia, również znalazłem, że muszę zwrócić true dla 'isChildSelectable() ' – sleeke

+1

Zgadzam się z @sleeke, musiałem do obu 'areAllItemsEnabled()' i 'isChildSelectable()', aby przestał być niewidoczny. –

0

Nigdy nie próbowałem zadzierać z dzielnikami w xml, zawsze robiłem to za pomocą kodu. Poniżej znajduje się fragment, który ustawia dzielnik na czerwony i powoduje jego zanikanie, gdy przesuwa się od środka do krawędzi. Istnieje tylko jedno wywołanie wysokości dzielnika, ponieważ ta część ma wpływ zarówno na grupę, jak i na dziecko.

import android.graphics.drawable.GradientDrawable; 
import android.graphics.drawable.GradientDrawable.Orientation; 

// code to set up expandablelistview 

int[] colors = {0, 0xFFFF0000, 0}; // red for the example 
getListView().setDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors)); 
getListView().setChildDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors)); 
getListView().setDividerHeight(4); 
+0

Hmm, ok Spróbuję zrobić to w kodzie, chociaż byłoby lepiej, gdyby był sposób na zrobienie tego w xml ... Spróbuję tego jutro i zobaczę – Cata

+0

wydaje się, że to nie działa dla mnie ... dziękuję chociaż – Cata

Powiązane problemy