如何更改微调框小部件的边框和分隔符颜色

时间:2010-06-20 08:40:54

标签: android

我已将spinner项目背景自定义为黑色。但是旋转器周围的边框和每个微调器项目之间的分隔符为白色。 我想将分隔符颜色和边框更改为深灰色。

  • 如何更改这些颜色?
  • 微调器是使用列表视图还是其他一些作为父级来填充微调器中的项目?
  • 如果可以,我可以更改父视图的分隔符背景吗?

2 个答案:

答案 0 :(得分:0)

首先,您必须定义视图(水平线),它是微调器的项目的分隔线,您可以使用微调器的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)
    {
    }
});

答案 1 :(得分:-4)

我猜它确实可以作为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的信息。