Android Spinner下拉箭头未显示

dar*_*099 16 xml layout android fragment spinner

我的片段的背景是白色的,除非我点击它,否则不会显示微调器的箭头.

这是我的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");
Run Code Online (Sandbox Code Playgroud)

这是我的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"/>
Run Code Online (Sandbox Code Playgroud)

这是我的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"/>
Run Code Online (Sandbox Code Playgroud)

这就是我的微调器看起来像我的片段的白色背景: 白色背景 - 微调器 这是我将背景颜色更改为紫色时的样子: 紫色背景 - 微调器

Jiy*_*yeh 34

这对我有用,也简单得多:

<Spinner
      android:id="@+id/spinner"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:theme="@style/ThemeOverlay.AppCompat.Light"
      android:spinnerMode="dropdown" />
Run Code Online (Sandbox Code Playgroud)

在你的类文件中:

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);
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助 ;)

  • 就我而言,仅设置主题有效。 (2认同)

小智 21

试试这个:

<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" />
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

  • 只是补充:如果你的 drop_arrow 是一个向量,你必须将 `&lt;item&gt;&lt;bitmap..` 部分更改为 `&lt;item android:gravity="end" android:drawable="@drawable/drop_arrow" /&gt;` (2认同)

Rah*_*nge 7

只需在spinner标签中添加主题,就可以了.

android:theme="@style/ThemeOverlay.AppCompat.Light"
Run Code Online (Sandbox Code Playgroud)


MFQ*_*MFQ 6

检查是否为您提供了背景Spinner,是否将其删除,它将解决此问题