2012-08-08 6 views
5

In der Google+ App passt sich die Position des rechten Eckpfeils der ActionBarSpinner an die Länge der aktuellen angezeigten Zeichenfolge an. Zum Beispiel scheint die Länge des Spinneres kürzer zu sein, wenn Familie ausgewählt wird, wenn Bekannte ausgewählt wird.Dynamische Positionierung des Pfeils der rechten Ecke des ActionBar Spinner basierend auf der Länge des angezeigten Titels

Was muss ich tun, damit der rechte Eckpfeil dynamisch auf der Länge des Titels positioniert wird? Meine Vermutung ist, dass es ein Attribut gibt, das ich in styles.xml einstellen kann, das das für mich tun wird.

mein styles.xml hier:

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

Hier ist der Code, den ich in meinem MainActivity.java haben:

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

Anders als in Google+, die Position meiner rechten Ecke Pfeil ist immer fixiert. Also, wenn ich von "AAAAAAAAAAAAAAAAA" zu "BB" aus dem Dropdown wähle, bewegt sich der Pfeil überhaupt nicht.

+0

Haben Sie den Weg herausgefunden? Fast 4 Jahre sind vergangen .. – Bruce

Antwort

0

entnehmen Sie bitte den Code von Android reinen Calendar in seinem Adapter, kehrt getView() immer das aktuelle Element in Calendar, so dass die Breite der Spinner zu der aktuellen Position entspricht. Tatsächlich wird die Spinner Breite in ActionBar immer als die Länge des längsten Elements berechnet. Calendar macht hier einen speziellen Prozess.

Verwandte Themen