4

Ich arbeite an einer Android Honeycomb mit einer ActionBar. Ich habe die ActionBar die folgende Art und Weise:Wie style ich eine Dropdown-Liste in einer ActionBar in Honeycomb?

// Configures the action bar 
private void configureActionBar() { 
    mActionBar = getActionBar(); 
    mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 

    SpinnerAdapter spinnerAdapter = ArrayAdapter.createFromResource(this, R.array.rooms, android.R.layout.simple_spinner_dropdown_item); 

    ActionBar.OnNavigationListener navigationCallback = new ActionBar.OnNavigationListener() { 
     public boolean onNavigationItemSelected(int itemPosition, long itemId) { 
      String[] rooms = getResources().getStringArray(R.array.rooms); 

      mAppState.setCurrentRoom(rooms[itemPosition]); 

      return false; 
     } 
    }; 

    mActionBar.setListNavigationCallbacks(spinnerAdapter, navigationCallback); 
} 

Das Bild unten zeigt einen Screenshot von einem Teil des ActionBar. Ich würde gerne die Dropdown-Liste gestalten, bin mir aber nicht sicher, wie es geht. Diese link hat einige XML-Samples, aber ich weiß nicht, wie man sie anwendet und wie man die spezifischen Elemente stylt, auf die unten hingewiesen wird.

ActionBar Dropdown List for Styling

Hier ist eine Liste von Änderungen, die ich machen möchte:

  1. Ändern der Schriftgröße des ausgewählten Elements, dass der Worte „Room Manager“ entfernen
  2. entsprechen der graue Linie unter dem angezeigten ausgewählten Element
  3. Entfernen Sie die blaue Linie an der Spitze der Dropdown-Liste
  4. Hinzufügen von Radio-Schaltflächen zu den Listenelementen und überprüfen Sie die aktuell ausgewählte Element in der Dropdown-Liste
  5. ändern die Farbe der Linien, die die Listenelemente Trennung

Hat jemand irgendwelche Ideen, wie dies zu tun?

Vielen Dank!

+0

Wie setzen Sie die Leiste rechts neben der ActionBar? – cheloncio

Antwort

3

Ich habe herausgefunden, wie Sie die Elemente in der Liste sowie das angezeigte Element stylen. Die Lösung bestand darin, zwei Layout-XML-Dateien im Verzeichnis/res/layout zu erstellen - eines für die Dropdown-Elemente des Spinner und eines für den Selektor (das angezeigte Element). Ich konnte dann die View-Ressourcen zum ArrayAdapter hinzufügen.

R.layout.spinner_dropdown_text_view:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/spinnerDropdownTextView" 
    android:layout_width="match_parent" 
    android:layout_height="50dp" 
    android:paddingLeft="10dp" 
    android:gravity="center_vertical" 
    android:textSize="18dp" /> 

R.layout.spinner_selector_text_view:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/spinnerSelectorTextView" 
    android:layout_width="210dp" 
    android:layout_height="match_parent" 
    android:paddingTop="12dp" 
    android:textSize="18dp" 
    android:textColor="@android:color/black" /> 

Der ArrayAdapter Code:

ArrayAdapter<CharSequence> aa = ArrayAdapter.createFromResource(this, R.array.rooms, R.layout.spinner_selector_text_view); 
aa.setDropDownViewResource(R.layout.spinner_dropdown_text_view); 

Das Ergebnis:

The result

Leider konnte ich nicht herausfinden, wie die Optionsfelder hinzugefügt werden oder wie die horizontalen Linien entfernt werden.