2015-03-12 18 views
7

moje tło dla mojego fragmentu jest białe, a strzałka dla spinnera nie wyświetla się, chyba że kliknę na niego.Rozdzielacz ekranu Android Spinner nie wyświetlający

Jest to urywek z mojego pliku Java:

spinner = (Spinner)v.findViewById(R.id.spinner); 
    ArrayAdapter adapter = ArrayAdapter.createFromResource(getActivity(), R.array.accounts,R.layout.spinner_item); 
    adapter.setDropDownViewResource(R.layout.spinner_dropdown_items); 
    spinner.setAdapter(adapter); 
    spinner.setPrompt("Select an account"); 

To mój XMLfor spinner_item

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/text1" 
style="?android:attr/spinnerItemStyle" 
android:singleLine="true" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:ellipsize="marquee" 
android:textAlignment="inherit" 
android:textSize="16dp" 
android:background="#FFFFFFFF" 
android:textColor="#ff252525"/> 

A to mój układ dla moich spinner_dropdown_items.

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

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/text1" 
style="?android:attr/spinnerItemStyle" 
android:singleLine="true" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:ellipsize="marquee" 
android:textAlignment="inherit" 
android:textSize="16dp" 
android:background="#FFFFFFFF" 
android:textColor="#ff252525"/> 

To jest jak moja spinner wygląda z białym tłem do mojego fragmentu: White Colour Background - Spinner I tak to wygląda, kiedy mogę zmienić kolor tła do fioletowy: Purple background - Spinner

Odpowiedz

18

Działa to dla mnie o wiele prostsze, a także:

<Spinner 
     android:id="@+id/spinner" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:theme="@style/ThemeOverlay.AppCompat.Light" 
     android:spinnerMode="dropdown" /> 

A w pliku klasy:

spinner = (Spinner) view.findViewById(R.id.spinner); 
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.spinner_data, android.R.layout.simple_spinner_dropdown_item); 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
spinner.setAdapter(adapter); 

Mam nadzieję, że to pomoże;)

+1

W moim przypadku zadziałało tylko ustawienie tematu. –

1

Najprostszą metodą jest ustawić tło obraz (ze strzałką) zamiast koloru.

spinner.setBackgroundResource(R.drawable.spinner_img); 

nadzieję, że to pomaga.

+2

Próbowałem w ten sposób, ale potem obraz idzie całego turbinki. Chcę, aby strzałka skierowała się w stronę przędzarki. Tak więc w tej chwili wygląda to tak; [https://www.dropbox.com/s/oe59pxiehktwdet/Screenshot_2015-03-12-15-10-42-1.png?dl=0] –

14

Spróbuj tego:

<Spinner 
    android:id="@+id/spinnPhoneTypes" 
    android:layout_width="0dp" 
    style="@android:style/Widget.Spinner.DropDown" 
    android:layout_height="@dimen/thirtyFive" 
    android:layout_marginLeft="10dp" 
    android:layout_weight="1" 
    android:background="@drawable/shape_drop_down_normal" 
    android:gravity="center_vertical" /> 

shape_drop_down_normal.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <shape> 
      <solid android:color="@android:color/transparent" /> 

      <stroke 
       android:width="1dp" 
       android:color="#6f94c7" /> 

      <padding 
       android:bottom="10dp" 
       android:left="2dp" 
       android:right="10dp" 
       android:top="10dp" /> 
     </shape> 
    </item> 
    <item> 
     <bitmap 
      android:gravity="end" 
      android:src="@drawable/drop_arrow" /> 
    </item> 
</layer-list> 
+0

Jak mam to zrobić? Nie jestem zbyt pewny jak próbuję w ten sposób –

3

Po prostu dodaj motyw w tagu spinner i już możesz iść.

android:theme="@style/ThemeOverlay.AppCompat.Light" 
1

sprawdzić, czy dajesz tła podczas obrotowemu, a jeśli nie usunąć go i będzie rozwiązać problem