2013-08-01 11 views
9

Poniższa metoda nie działa w wersji dla Androida jellybean 4.3.Widget listy rozwijanej przesuń wskaźnik ikony grupy w prawo w wersji jellyBean 4.3?

historyExpaLV.setIndicatorBounds(historyExpaLV.getRight() - 60, 
        historyExpaLV.getWidth() - 8);  

Czy ktoś zna rozwiązanie? Z góry dziękuję.

+2

„nie działa” nie jest bardzo użyteczne wyjaśnienie objawów. – CommonsWare

+0

Czy działa w poprzednich wersjach? Czy dzwonisz przed tym, zanim zostanie zmierzona? Więcej szczegółów, proszę. – Geobits

+0

tak działa w poprzednich wersjach Geobits. –

Odpowiedz

31

Jak naprawiłem to:

Aktualizacja SDK Manager Android 4.3 i wykorzystanie to jako cel budowy. Wprowadzili nową metodę w API 18 o nazwie setIndicatorBoundsRelative (int, int), która działa jako druga (ale poprawnie) w systemie Android 4.3.

Zrób sprawdzić wersję Androida i użyć starej metody ze starszymi API:

if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) { 
    mListView.setIndicatorBounds(myLeft, myRight); 
} else { 
    mListView.setIndicatorBoundsRelative(myLeft, myRight); 
} 
+2

, ale dlaczego wprowadzono tę zmianę? –

+0

dziękuję, to wyjaśnia mój nosuchmethoderror! – AlleyOOP

+2

Co to jest myLeft, myRight? Proszę je opracować: –

5

myślę, że to bug

int right = (int) (getResources().getDisplayMetrics().widthPixels - TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 30, getResources().getDisplayMetrics())); 
    expandableListView.setIndicatorBounds(right - getResources().getDrawable(R.drawable.group_indicator_padding).getIntrinsicWidth(), right); 

ten kod działa poprawnie do 4.2.2 i nic nie robić na 4,3

+0

Dzięki za życzliwą odpowiedź ... Która jest statycznie rozwiązana rozmiar obrazu wskaźnika grupy ... – Satheesh

+0

Powyższa odpowiedź zadziała. Ponieważ funkcja setIndicatorBoundsRelative będzie działać dla systemu Android> = 4.3 – AnkitRox

Powiązane problemy