web-dev-qa-db-ja.com

Android Spinnerドロップダウン矢印が表示されない

フラグメントの背景は白で、スピナーの矢印はクリックしないと表示されません。

これは、my Java file:

    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");

これはspinner_itemの私のXMLです

<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"/>

そして、これは私の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"/>

これは、私のスピナーがフラグメントの白い背景でどのように見えるかです: 白い色の背景-スピナー そしてこれは、背景色を紫色: 紫色の背景-スピナー

15

これは私にとってもうまくいき、はるかに簡単です:

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

そして、クラスファイルで:

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);

お役に立てれば ;)

32
Jiyeh

これを試してください:

<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>
19

Spinnerタグにテーマを追加するだけで準備完了です。

Android:theme="@style/ThemeOverlay.AppCompat.Light"
7
Rahul Dange

Spinnerの背景を提供しているかどうか、それを削除して問題を解決できるかどうかを確認します

6
MFQ

最も簡単な方法は、色ではなく背景画像(矢印付き)を設定することです。

 spinner.setBackgroundResource(R.drawable.spinner_img);

それが役に立てば幸い。

1
manDroid

ドロアブルの使用を回避するには、スピナーをビューでラップし、ラッパービューに背景色を設定します。例えば、

<Android.support.v7.widget.CardView
        Android:id="@+id/cardView_spinner"
        Android:layout_width="match_parent"
        Android:layout_height="60dp"
        Android:layout_margin="32dp"
        Android:background="@color/white">

        <Spinner
            Android:id="@+id/spinner"
            Android:layout_width="match_parent"
            Android:layout_height="match_parent" />

    </Android.support.v7.widget.CardView>
0
Eugenio Lopez