2013-04-20 9 views
5

Chciałem zaimplementować funkcję Pull to Refresh w mojej aplikacji Android, więc zaimplementowałem tę bibliotekę: Android-PullToRefresh. Jednak nie mogę ustawić stylu niestandardowego do dzielenia programowego.Jak skonfigurować niestandardowy ListView z dzielnikiem za pomocą Androida?

Kod jest prosty:

list = (PullToRefreshListView) findViewById(R.id.list); 
int[] colors = {0, 0xFF97CF4D, 0}; 
list.setDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors)); 
list.setDividerHeight(1); 

jednak rzuca ten błąd: The method setDivider(GradientDrawable) is undefined for the type PullToRefreshListView i The method setDividerHeight(int) is undefined for the type PullToRefreshListView.

Co robię źle tutaj?

Odpowiedz

8

PullToRefreshListView nie jest ListView, stąd ten błąd. Należy uzyskać dostęp do ListView wewnątrz PullToRefreshListView i wywołać metody setDivider*.

list = (PullToRefreshListView) findViewById(R.id.list); 
int[] colors = {0, 0xFF97CF4D, 0}; 
ListView inner = list.getRefreshableView(); 
inner.setDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors)); 
inner.setDividerHeight(1); 

Jako alternatywę można zdefiniować gradientu jako rozciągliwej XML i ustawić atrybuty prawo w układzie jak przedstawiono w próbce here

np

<com.handmark.pulltorefresh.library.PullToRefreshListView 
    android:divider="@drawable/fancy_gradient" 
    android:dividerHeight="@dimen/divider_height"... 
+0

To daje błąd: "Niezgodność typu: nie można przekonwertować z ListView do PullToRefreshListView' – input

+1

sprawdź powyższy kod: powinieneś wywołać' getRefreshableView() 'na swoim' PullToRefreshListView'. Przesyłanie do ListView jest w tym przypadku bezużyteczne. Pozbędę się tego w mojej odpowiedzi. –

+0

Kod nie działa. Zakończyłem stylizację dzielnika za pomocą rysunków XML. Dzięki za pomoc! :) – input

Powiązane problemy