2014-11-25 22 views
15

Wie erreiche ich das Material Design von Spinner in Toolbox? Ich habe versucht, die folgenden aber mein Spinner sieht wie folgt ausAndroid Spinner Toolbar Stil

enter image description here

<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="56dp" 
    android:background="@color/main_color" 
    app:contentInsetLeft="14dp" 
    app:contentInsetRight="14dp" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
    app:theme="@style/ThemeOverlay.AppCompat.ActionBar"> 

    <Spinner 
     android:id="@+id/spinner_nav" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

</android.support.v7.widget.Toolbar> 

Mein Minimum sdk ist 15.

auf meinem onCreate

ButterKnife.inject(this); 

    mToolbar.inflateMenu(R.menu.menu_login); 
    mToolbar.setTitle(R.string.sign_in); 
    mToolbar.setOnMenuItemClickListener(this); 

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

    mSpinner.setAdapter(spinnerAdapter); 
    mSpinner.setOnItemSelectedListener(this); 

Ein Menü eine temporäre Blatt ist Papier, das immer die App-Leiste, überlappt, anstatt sich als eine Erweiterung von die App-Leiste.

alle Links wäre eine große Hilfe

UPDATE

schaffe ich habe zu erreichen, was ich will

enter image description here

i auf diese Weise benutzt

ButterKnife.inject(this); 

     mToolbar.setTitle(R.string.sign_in); 
     setSupportActionBar(mToolbar); 

     SpinnerAdapter spinnerAdapter = ArrayAdapter.createFromResource(getSupportActionBar().getThemedContext(), 
       R.array.options, android.R.layout.simple_spinner_dropdown_item); 

     getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 
     getSupportActionBar().setListNavigationCallbacks(spinnerAdapter, this); 

und meine xml

<android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="56dp" 
     android:background="@color/app_secondary_color" 
     app:contentInsetLeft="14dp" 
     app:contentInsetRight="14dp" 
     app:popupTheme="@style/ThemeOverlay.AppCompat" 
     app:theme="@style/ThemeOverlay.AppCompat.ActionBar"> 

    </android.support.v7.widget.Toolbar> 

Aber Wie mache ich es weiß und die Textfarbe des Menüs blau ist? habe ich auch dieses Problem. es scheint, es ist zu weit weg? Wie kann ich diesen Drop-down-Pfeil reparieren?

enter image description here

aktualisieren 2

gut nach so viel Zeit damit verbringen, habe ich erreichen, wie es weiß und die Textfarbe schwarz durch diese zu machen. Ich habe für Drop-Down-Stil meine benutzerdefinierten Layout erstellt

<?xml version="1.0" encoding="utf-8"?> 

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    style="?android:attr/spinnerDropDownItemStyle" 
    android:singleLine="true" 
    android:layout_width="match_parent" 
    android:background="@color/background_material_light" 
    android:textColor="@color/abc_primary_text_material_light" 
    android:layout_height="48dp" 
    android:ellipsize="marquee"/> 

dann diesen Code auf meinem oncreate hinzugefügt

spinnerAdapter.setDropDownViewResource(R.layout.custom_simple_spinner_dropdown_item); 

Das einzige Problem jetzt ich begegnen, ist, dass die Presse Zustand nicht funktioniert, ist es nur eine Ebene Weiß. Wenn Sie auf dem anderen Popup-Menü sehen, wenn Sie auf ein Element klicken, wird die Hintergrundfarbe etwas dunkler. Auch dieses nervige Icon ist immer noch zu weit vom Text entfernt.

+0

was versuchen Sie zu erreichen, links oder rechts? – tyczj

+0

der richtige. Zur Zeit ist meine App auf der linken Seite.Ich brauche das Menü, um über dem Drehfeld zu schweben, wie in der Materialführung angegeben. – Milk

+0

Haben Sie versucht, das Basisthema in Light zu ändern? – waqaslam

Antwort

0

Sie sollten ein color state list resource machen und es als Hintergrund für Ihre anwenden. Da das Pfeilsymbol zu weit ist, ist AFAIK wegen der Länge der Kinder so weit wie das längste Kind. Also, keine Möglichkeit, das anzupassen.