android:自定义Spinner

时间:2017-02-07 15:32:00

标签: android spinner customization android-spinner

我正在尝试创建一个自定义Spinner,我遇到了这样的困难。

这是我想要达到的效果: Desired Effect

但是我发现很难将Spinner的背景颜色设置为黑色。我已经尝试设置android:background属性,但是当我这样做时,Spinner完全消失,好像高度设置为0.我真的很感激任何帮助。

此外,这是我正在使用的代码:

    <Spinner
        android:id="@+id/simpleSpinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:backgroundTint="@color/white"
        android:background="@color/black"
        />

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:布局

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:background="@drawable/border"
    android:gravity="center">

    <Spinner
        android:id="@+id/spinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:background="@null"
        android:textSize="16sp" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:src="@drawable/arrow_down" />  //your down arrow on right side
</RelativeLayout>

对于可绘制边框:

 <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <stroke
        android:width="2dp"
        android:color="#ffffff" />

    <solid android:color="#000000" />
    <corners
        android:radius="0dp" />

    <padding
        android:bottom="1dp"
        android:left="1dp"
        android:right="1dp"
        android:top="1dp" />
</shape>

对于微调器textview颜色,请使用项目的自定义布局:spinner_item.xml

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

<TextView  
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"
    android:textSize="20sp"
    android:gravity="left"  
    android:textColor="#FFFFFF"         
    android:padding="5dp"
    />
Java中的

:使用布局

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.spinner_item,list);