2015-01-23 2 views
4

Я не могу понять, как стилизовать этот счетчик в ящике темного фона с тематикой материала v21. Я пробовал различные подходы, связанные с пользовательскими стилями, и ничто, похоже, не имеет никакого отношения к появлению этого счетчика.Как стиль Android Spinner с материалами светлые темы на темном фоне?

Вот как это выглядит в приложении, работающем на Android 5.0.1. Spinner, здесь с выбранным пунктом «Code on the Beach 2015», находится в ящике с темным фоном (# DD000000), но остальная часть приложения - легкая тема. Стрелка показывает как черный - почти невозможно увидеть на устройстве. Я бы хотел, чтобы у него была белая стрела.

App Screenshot

Вот мой styles.xml файл:

<?xml version="1.0" encoding="UTF-8" ?> 
<resources> 
    <style name="app_theme" parent="Theme.AppCompat.Light"> 
     <item name="colorPrimary">#E95624</item> 
     <item name="colorPrimaryDark">#BD4000</item> 
     <item name="colorAccent">#86d3c5</item> 
     <item name="windowActionBar">false</item> 
    </style> 
</resources> 

А вот файл Main.axml, основной макет для этой деятельности, которая содержит DrawerLayout и Spinner:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:a="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    a:layout_width="match_parent" 
    a:layout_height="match_parent" 
    a:orientation="vertical"> 
    <android.support.v7.widget.Toolbar 
     a:id="@+id/main_toolbar" 
     a:layout_width="match_parent" 
     a:layout_height="wrap_content" 
     a:minHeight="?attr/actionBarSize" 
     a:background="?attr/colorPrimary" 
     a:elevation="2dp" 
     app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> 
    </android.support.v7.widget.Toolbar> 
    <android.support.v4.widget.DrawerLayout 
     a:id="@+id/drawer_layout" 
     a:layout_width="match_parent" 
     a:layout_height="match_parent"> 
     <FrameLayout 
      a:id="@+id/content_frame" 
      a:layout_width="match_parent" 
      a:layout_height="match_parent" /> 
     <LinearLayout 
      a:id="@+id/left_drawer" 
      a:orientation="vertical" 
      a:layout_width="240dp" 
      a:layout_height="match_parent" 
      a:layout_gravity="start" 
      a:background="#DD000000"> 
      <Spinner 
       a:id="@+id/event_spinner" 
       a:layout_width="match_parent" 
       a:layout_height="wrap_content" 
       a:padding="4dp" /> 
      <ListView 
       a:id="@+id/left_drawer_list" 
       a:layout_width="match_parent" 
       a:layout_height="wrap_content" 
       a:choiceMode="singleChoice" 
       a:divider="@android:color/transparent" 
       a:dividerHeight="0dp" /> 
     </LinearLayout> 
    </android.support.v4.widget.DrawerLayout> 
</LinearLayout> 

И в случае, если это необходимо, вот код, который устанавливает адаптер счетчика (Xamarin C#):

var adapter = new ArrayAdapter<string>(SupportActionBar.ThemedContext, Resource.Layout.event_selector, events); 
    adapter.SetDropDownViewResource(global::Android.Resource.Layout.SimpleSpinnerDropDownItem); 

_eventSelector.Adapter = adapter; 

А вот мой event_selector.axml (я изменил TextColor на #FFF снимок сделан, не влияет на цвет стрелки):

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="8dp" 
    android:textSize="16sp" 
    android:textColor="#fff" /> 

Какие изменения в моей .axml или styles.xml файлов я нужно сделать, чтобы дать этому прядильщику белую стрелу? Заранее спасибо!

ответ

0

Ключ должен установить для атрибута backgroundTint нужный цвет.

<Spinner 
     a:id="@+id/event_spinner" 
     a:layout_width="match_parent" 
     a:layout_height="wrap_content" 
     a:padding="4dp" 
     a:backgroundTint="#FFFFFF"/> 
Смежные вопросы