2012-08-08 17 views
5

En la aplicación Google+, la posición de la flecha de esquina derecha del ActionBarSpinner se adapta a la longitud de la cadena actual. Por ejemplo, la longitud del Spinner parece más corta cuando se selecciona Familia en comparación con cuando se selecciona Conocidos.Posición dinámica flecha de esquina derecha del ActionBar Spinner según la longitud del título mostrado

¿Qué debo hacer para que la flecha de esquina a la derecha se posicione de forma dinámica en función de la longitud del título? Supongo que hay un atributo que puedo configurar en styles.xml que hará eso por mí.

Aquí es mi 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> 

Aquí está el código que tengo en mi 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 diferencia de Google +, la posición de mi esquina derecha flecha siempre es fijo. Entonces, si elijo de "AAAAAAAAAAAAAAA" a "BB" en el menú desplegable, la flecha no se mueve en absoluto.

+0

¿Has descubierto el camino? Han pasado casi 4 años .. – Bruce

Respuesta

0

Por favor, consulte el código de Android pura Calendar, en su adaptador, getView() siempre devuelve el elemento actual Calendar manera que la anchura de la Spinner es igual al elemento actual. En realidad, el ancho de Spinner en ActionBar siempre se calcula como la longitud de su artículo más largo. Calendar hace algún proceso especial aquí.

Cuestiones relacionadas