我如何在spinner上使用android:drawableRight like属性

时间:2017-07-19 05:58:11

标签: android android-spinner

我想实现一些EditText和Spinner,我正在使用它     在EditText上android:drawableRight,但这不是微调器的属性     我这样用的地方怎能办     我使用android:background="@drawable/rounded_edittext"作为圆框。     android:entries用于性别的价值观。

我使用的xml代码

<EditText
   android:id="@+id/passsET"
   android:layout_width="350dp"
   android:layout_height="50dp"
   android:layout_below="@+id/emailET"
   android:layout_marginTop="10dp"
   android:paddingLeft="10dp"
   android:drawableRight="@drawable/passwords_icon"
   android:hint="Password"
   android:singleLine="true"
   android:textColor="@color/colorPrimaryDark"
   android:background="@drawable/rounded_edittext"
   android:textSize="16dp"
   android:layout_centerHorizontal="true"
   android:inputType="textWebPassword"/>
<Spinner
 android:id="@+id/spinGenders"
 android:layout_width="350dp"
 android:layout_height="40dp"
 android:layout_marginTop="10dp"
 style="@style/Base.Widget.AppCompat.Spinner.Underlined"
 android:entries="@array/Gender"
 android:textSize="15dp"
 android:gravity="center"
 android:background="@drawable/rounded_edittext"
 android:layout_below="@+id/spinProfilebys"
 android:textColorHint="@color/BLUE"
 android:layout_centerHorizontal="true">
</Spinner>

3 个答案:

答案 0 :(得分:3)

你可以像这样改变背景颜色和下拉图标

步骤1:在drawable文件夹中,为spinner的边框创建background.xml。

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@android:color/transparent" />
<corners android:radius="5dp" />
<stroke
    android:width="1dp"
    android:color="@color/darkGray" />
</shape>  //edited

第2步:对于微调器的布局设计,请使用此下拉图标或任何图像drop.pnj use this image like as

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginRight="3dp"
    android:layout_weight=".28"
    android:background="@drawable/spinner_border"
    android:orientation="horizontal">

    <Spinner
        android:id="@+id/spinner2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_gravity="center"
        android:background="@android:color/transparent"
        android:gravity="center"
        android:layout_marginLeft="5dp"
        android:spinnerMode="dropdown" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_gravity="center"
        android:src="@mipmap/drop" />

</RelativeLayout>

最后看起来像下面的图像,它是每个可在圆形区域中点击的地方,无需为imageView点击Lister。

有关详细信息,请参阅Here

enter image description here

答案 1 :(得分:0)

创建一个这样的风格

<style name="SpinnerTheme" parent="android:Widget.Spinner">
  <item name="android:background">@drawable/spi_icon</item>
</style>

,而不是适用于您的微调器

<Spinner
 android:id="@+id/spinGenders"
 android:layout_width="350dp"
 android:layout_height="40dp"
 android:layout_marginTop="10dp"
 style="@style/SpinnerTheme"
</Spinner>

在drawble文件夹中创建这样的背景

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <layer-list>
            <item>
                <shape>
                    <gradient android:angle="90" android:endColor="#ffffff" android:startColor="#ffffff" android:type="linear" />
                    <stroke android:width="0.33dp" android:color="#0fb1fa" />
                    <corners android:radius="0dp" />
                    <padding android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp" />
                </shape>
            </item>
            <item android:right="5dp">
                <bitmap android:gravity="center_vertical|right" android:src="@drawable/arrow_down_gray" />
            </item>
        </layer-list>
    </item>
</selector>

答案 2 :(得分:0)

[在此图像中,所有微调器项目位于中间但教育项目位于底部位置]

[1]首先在xml文件中添加Spinner

  <Spinner
         android:background="@drawable/spinner_back"
         android:id="@+id/fatherOccuption"
         android:layout_width="350dp"
         android:layout_height="50dp"
         android:textSize="18dp"
         android:layout_centerHorizontal="true"
         style="@style/Base.Widget.AppCompat.Spinner.Underlined"
         android:layout_marginTop="2dp"
         android:layout_below="@+id/fatherOcc"/>

现在我在可绘制文件

上使用了以下代码
   <?xml version="1.0" encoding="utf-8"?>
   <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
       <layer-list>
          <item>
            <shape>
                <gradient android:angle="90" android:endColor="#ffffff" 
                 android:startColor="#ffffff" android:type="linear" />
                <stroke android:width="0.33dp" android:color="#0fb1fa" />
                <corners android:radius="0dp" />
                <padding android:bottom="3dp" android:left="3dp" 
                android:right="3dp" android:top="3dp" />
            </shape>
          </item>
        <item android:right="5dp">
         <bitmap android:gravity="center_vertical|right" 
         android:src="@drawable/spinner_img" />
        </item>
    </layer-list>
  </item>
</selector> 

这是用于微调项

的适配器
 StringRequest stringIncome=new StringRequest(Request.Method.GET,OCC_URL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {

                    String[] arr = response.split(",");
                    ArrayAdapter<String> adapter = new ArrayAdapter<String>
                    (EditDetails5.this, android.R.layout.simple_list_item_1, 
                     arr);
                    fatherOccuption.setAdapter(adapter);
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {

    Toast.makeText(EditDetails5.this, error.toString(), 
Toast.LENGTH_LONG).show();
}
});
AppController.getInstance().addToRequestQueue(stringIncome);

[1]: https://i.stack.imgur.com/qzqgu.png