2012-08-08 8 views
5

Nell'app Google+, la posizione della freccia dell'angolo destro dello ActionBarSpinner si adatta alla lunghezza della stringa corrente visualizzata. Ad esempio, la lunghezza dello Spinner sembra più breve quando la famiglia Famiglia viene scelta rispetto a quando viene selezionata la persona comune.Posiziona dinamicamente la freccia dell'angolo destro del filatoio ActionBar in base alla lunghezza del titolo visualizzato

Cosa devo fare per ottenere la freccia dell'angolo destro per posizionarsi dinamicamente in base alla lunghezza del titolo? La mia ipotesi è che ci sia un attributo che posso impostare in styles.xml che lo farà per me.

Ecco la mia styles.xml:

<style name="MyStyle" parent="android:style/Theme.Holo"> 
    <item name="android:actionDropDownStyle">@style/MyDropDownNav</item> 
</style> 

<style name="MyDropDownNav" parent="android:style/Widget.Holo.Spinner"> 
    <item name="android:AttributeHere">AttributeValue</item> 
</style> 

Ecco il codice che ho nella mia MainActivity.java:

ActionBar actionBar = getActionBar(); 
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 

// Specify a SpinnerAdapter to populate the dropdown list. 
SpinnerAdapter dataAdapter = new ArrayAdapter<String>(
     actionBar.getThemedContext(), 
     android.R.layout.simple_list_item_1, android.R.id.text1, 
     new String[] { "AAAAAAAAAAAAAAA", "BB" }); 

// Set up the dropdown list navigation in the action bar. 
actionBar.setListNavigationCallbacks(dataAdapter, this); 

A differenza di Google+, la posizione del mio diritto freccia angolo è sempre fissa. Quindi se scelgo da "AAAAAAAAAAAAAAA" a "BB" dal menu a discesa, la freccia non si muove affatto.

+0

Hai capito la strada? Sono passati quasi 4 anni .. – Bruce

risposta

0

Si prega di fare riferimento al codice di Android puro Calendar, nel suo adattatore, getView() restituisce sempre la voce corrente in Calendar in modo che la larghezza della Spinner è uguale alla voce corrente. In realtà, la larghezza Spinner in ActionBar viene sempre calcolata come la lunghezza dell'elemento più lungo. Calendar esegue un processo speciale qui.

Problemi correlati