2013-08-01 13 views
9

Il metodo seguente non funziona nella versione di android jellybean 4.3.Visualizzazione elenco espandibile sposta l'icona dell'icona del gruppo a destra nella versione jellyBean 4.3?

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

Qualcuno conosce la soluzione? Grazie in anticipo.

+2

"non funziona" non è una spiegazione molto utile dei vostri sintomi. – CommonsWare

+0

Funziona nelle versioni precedenti? Lo stai chiamando prima che sia misurato? Maggiori dettagli, per favore. – Geobits

+0

sì funziona nelle versioni precedenti Geobits. –

risposta

31

Come ho risolto in questo modo:

aggiornamento SDK Manager per Android 4.3 e l'uso come obiettivo di costruzione. Hanno introdotto un nuovo metodo nell'API 18, chiamato setIndicatorBoundsRelative (int, int), che funziona come l'altro (ma correttamente) in Android 4.3.

Fai un assegno per la versione Android e utilizzare il vecchio metodo con API più vecchio:

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

ma perché è stata apportata questa modifica? –

+0

grazie, questo spiega il mio nosuchmethoderror! – AlleyOOP

+2

Che cosa è myLeft, myRight? Si prega di elaborarlo –

5

Penso che sia 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); 

questo codice funziona bene fino a 4.2.2 e non fare nulla su 4,3

+0

Grazie per la tua cortese risposta ... Che risolve staticamente la dimensione dell'indicatore del mio gruppo ... – Satheesh

+0

La risposta sopra funzionerà per te. Come setIndicatorBoundsRelative funzionerà per Android> = 4.3 – AnkitRox