2013-08-01 6 views
9

Die folgende Methode funktioniert nicht in Android-Version jellybean 4.3.Erweiterbare Listenansicht Bewegen Sie Gruppen-Symbol Indikator nach rechts in JellyBean 4.3 Version?

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

Kennt jemand die Lösung? Danke im Voraus.

+2

„nicht funktioniert“ nicht eine sehr nützliche Erklärung für Ihre Symptome ist. – CommonsWare

+0

Funktioniert es in früheren Versionen? Nennen Sie es, bevor es gemessen wird? Mehr Details bitte. – Geobits

+0

ja es funktioniert in früheren Versionen Geobits. –

Antwort

31

Wie ich dieses Problem behoben:

Update-SDK Manager 4.3 und die Nutzung auf Android es als Bauziel. Sie führten eine neue Methode in der API 18 ein: setIndicatorBoundsRelative (int, int), die wie die andere (aber korrekt) in Android 4.3 funktioniert.

einen Scheck für Android-Version machen und die alte Methode mit älteren API verwenden:

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

aber warum wurde diese Änderung vorgenommen? –

+0

danke, das erklärt meinen nosuchmethoderror! – AlleyOOP

+2

Was ist myLeft, myRight? Bitte erläutern Sie es –

5

Ich denke, es Fehler ist

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); 

dieser Code funktioniert 4.2.2 fein und nichts tun auf 4,3

+0

Vielen Dank für Ihre freundliche Antwort ... Was ist meine Gruppenanzeige Bildgröße statisch gelöst ... – Satheesh

+0

Die obige Antwort wird für Sie arbeiten. Da setIndicatorBoundsRelative für Android> = 4.3 funktioniert – AnkitRox