2015-07-19 15 views
6

Próbuję zmienić temat paska rozwijanego paska narzędziowego dziwnie to się nie dzieje. Nadchodzi zawsze ciemno, kiedy klikam na spinner. Chciałbym, aby tło było szare, a tekst czarny.Temat Spinner jest ciemny w Androidzie

Nie mam żadnego paska akcji. Ustawiam wszystko za pomocą paska narzędzi.

Stąd Próbowałem następujące:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:local="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/colorPrimary" 
    android:minHeight="?attr/actionBarSize" 
    local:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
    local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

    <RelativeLayout 
     android:id="@+id/relativeLayoutID" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 

     <TextView 
      android:id="@+id/toolbar_title" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerVertical="true" 
      android:layout_gravity="left|center" 
      android:text="@string/register_title" 
      android:textColor="@color/whiteText" 
      android:textSize="@dimen/text_size_medium" /> 

     <Spinner 
      android:id="@+id/spinner" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:minWidth="80dp" 
      android:spinnerMode="dropdown" 
      android:visibility="gone" /> 

    </RelativeLayout> 

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

stylów XML:

<resources> 

<style name="Theme.default" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="md_widget_color">@color/numbertext</item> 
    <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="android:colorPrimary">@color/colorPrimary</item> 
    <item name="android:windowContentOverlay">@drawable/toolbar_dropshadow</item> 
    <item name="android:windowBackground">@android:color/white</item> 
    <item name="android:editTextColor">@android:color/background_dark</item> 
    <item name="android:textColor">@android:color/background_dark</item> 
    <item name="colorControlNormal">@android:color/background_dark</item> 
    <item name="colorControlActivated">@color/orangeText</item> 
    <item name="colorControlHighlight">@color/orangeText</item> 
    <item name="android:statusBarColor">@color/colorPrimary</item> 

</style> 

<style name="Widget.MyApp.HeaderBar.Spinner" parent="Widget.AppCompat.Light.Spinner.DropDown.ActionBar"> 
    <item name="android:background">?android:selectableItemBackground</item> 
    <item name="android:dropDownSelector">?android:selectableItemBackground</item> 
    <item name="android:divider">@color/blackText</item> 
    <item name="android:overlapAnchor">true</item> 
</style></resources> 

Aktualizacja:

dodawali następujący motyw:

<style name="MyDarkToolbarStyle" parent="@style/Widget.AppCompat.Spinner.DropDown.ActionBar"> 
     <item name="background">?android:selectableItemBackground</item> 
     <item name="android:popupBackground">@color/layoutbackground</item> 
     <item name="android:dropDownSelector">?android:selectableItemBackground</item> 
     <item name="android:divider">@color/blackText</item> 
     <item name="android:overlapAnchor">true</item> 
    </style> 

i zastosować je do turbinki:

<Spinner 
      android:id="@+id/spinner" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:minWidth="80dp" 
style="@style/MyDarkToolbarStyle" 
      android:spinnerMode="dropdown" 
      android:visibility="gone" /> 

Z powyższych ustawień mogę zmienić kolor tła rozwijana ale nie nie jestem w stanie uzyskać odzew na wybór to bywało przed nałożeniem motyw do turbinki?

+0

Czy to ciemny motyw w 'lokalny: theme = "@ style/ThemeOverlay.AppCompat.Dark.ActionBar" 'intencjonalny? –

+0

@SaschaKolberg: Jeśli zmieni się na światło, moje linie rozwijania strzałek i szuflady nawigacji staną się ciemne. Jak zmienić to na biały? –

+0

Przepraszam, nie rozumiem tego ostatniego komentarza. –

Odpowiedz

12

Wystarczy dodać następujące wpisy do Spinner ten sam sposób, w jaki zrobił dla swojej Toolbar:

local:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 

Więc twój ostateczny Spinner będzie wyglądać następująco:

<Spinner 
    android:id="@+id/spinner" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:minWidth="80dp" 
    android:spinnerMode="dropdown" 
    local:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
    local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    android:visibility="gone" /> 
+0

Świetnie. Dzięki. Próbowałem już w ten sam sposób. Działa dobrze. Czy uważasz, że możesz mi pomóc z tym tematem: http://stackoverflow.com/questions/36347659/android-theme-issue-using-alertdialog-builder/36348062#36348062 –

+0

Nie, przepraszam, że nie pracowałem z te funkcje jeszcze. Proszę zaznaczyć, że ta odpowiedź została zaakceptowana, jeśli zadziałała, aby pomóc innym. –

+0

@SanjanaNair, proszę zaakceptować odpowiedź, jeśli to zadziałało. Nie pytaj, a potem odchodź, ale nagradzaj ludzi, którzy starają się ci pomóc. – Franklin

Powiązane problemy