如何更改微调控件的边框和分隔线颜色

问题描述:

我已将spinner项目背景自定义为黑色。但是,微调控件和每个微调控件项目之间的分隔线为白色。 我想将分隔符颜色和边框更改为深灰色。如何更改微调控件的边框和分隔线颜色

  • 我该如何改变这些颜色?
  • 是微调使用列表视图或其他一些父项来填充微调项中的项目?
  • 如果是这样,我可以更改父视图的分隔符背景吗?
+0

没有你˚F把它取出来? – 2013-12-10 05:19:39

+0

使用使定制布局膨胀的微调适配器。 [看到这个](http://*.com/questions/17407626/custom-layout-for-spinner-item) – Shashank 2017-05-09 06:23:08

我想它确实可以作为ListView

尝试了这一点:

<Spinner 
    android:id="@+id/spinner" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:drawSelectorOnTop="true" 
    android:prompt="@string/your_prompt" 
    android:headerDividersEnabled="false" 
    android:footerDividersEnabled="true" 
    android:divider="@drawable/list_divider" 
/> 

和你list_divider是:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape> 
      <gradient 
       android:startColor="#000000" 
       android:centerColor="#CCCCCC" 
       android:endColor="#FFFFFF" 
       android:height="1px" 
       android:angle="0" /> 
     </shape> 
    </item> 
</layer-list> 

PS:也看看this教程。似乎它有很多关于自定义Spinners的信息。

+1

那么没有工作 – DKIT 2011-05-27 15:20:59

+0

不幸的是,微调的属性是不一样的ListView,所以你可以' t使用分频器,页脚ecc。 – 2013-01-04 10:23:28

首先,必须定义视图(水平行),这是旋转器的物品的分离器线,并且可以使用在运行时改变该分隔线颜色微调的setOnItemSelectedListener方法是这样的:

View tview1 = (View) view.findViewById(R.id.v_1); 
tview1.setBackgroundResource(android.R.color.transparent); 

例如,XML文件:

<Spinner 
    android:id="@+id/move_branch" 
    android:backgroundTint="@color/color" 
    android:layout_width="0dp" 
    style="@style/Base.Widget.AppCompat.Spinner.Underlined" 
    android:layout_weight="1" 
    android:layout_height="wrap_content" /> 

MainActivity.java:

Spinner move_sem; // define spinner's id first 

move_sem.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) 
    { 
     View tview1 = (View) view.findViewById(R.id.v_1); 
     tview1.setBackgroundResource(android.R.color.transparent); 
     try 
     { 
      search_sem= Integer.parseInt(semid.get(position)); 
      semname=sem_list.get(position); 
     } 
     catch (Exception ignored) 
     { 
     } 
    } 
    @Override 
    public void onNothingSelected(AdapterView<?> parent) 
    { 
    } 
});