更改微调器背景颜色但保持箭头

Man*_*han 49 android spinner android-spinner

我已经读过几件关于它的事情,但我找不到我需要的东西.我想保留灰色箭头,但我想从默认样式中删除水平条并具有白色背景.你知道我怎么做吗?

这是我现在拥有的(默认微调器样式):

在此输入图像描述

这就是我想要的:

在此输入图像描述

Cha*_*ler 78

我根据@Mansur Khan的回答做了一点修改.

在这种情况下,我们不必添加ImageView,因为微调器已经有一个三角形箭头.所以检查下面的代码:

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="8dp"
        android:background="#FFFFFF">
        <Spinner
            style="@style/Widget.AppCompat.DropDownItem.Spinner"
            android:layout_width="match_parent"
            android:layout_height="70dp"
            android:id="@+id/sign_up_country"
            />
    </RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

这是截图

之前: 在此输入图像描述

后: 在此输入图像描述


Man*_*han 30

为了记录,我找到了一个简单的解决方案:用相对布局包裹你的微调器并添加一个图像:

 <RelativeLayout 
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:background="@drawable/borderbottom_white"<!-- white background with bottom border -->
     android:layout_marginTop="15dp"  >
        <Spinner
        android:id="@+id/postfield_category"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:background="@null"
        android:minHeight="0dp" />
        <ImageView 
         android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:src="@drawable/arrowspinner" />
    </RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

  • 我知道这已经很老了但是你能告诉我在哪里可以找到arrowpinner drawable吗? (2认同)

Tad*_*Tad 23

一个简单的解决方案,不要求你为箭头创建自己的drawable是用一个包裹微调器RelativeLayout,并设置背景颜色,而RelativeLayout不是微调器:

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#f00" >
    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)