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

Android 如何更改微调器小部件的边框和分隔符颜色,android,Android,我已经将微调器项目背景定制为黑色。但是微调器周围的边框和每个微调器项目之间的分隔器是白色的。 我想将分隔符颜色和边框更改为深灰色 我怎样才能改变这些颜色 微调器是使用列表视图还是其他一些视图作为父视图来填充微调器中的项目 如果是,我可以更改父视图的分隔符背景吗 我想它确实可以作为列表视图使用 试试这个: <Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:l

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

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

我想它确实可以作为
列表视图使用

试试这个:

<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"
/>

您的列表是:

<?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>


附言:还可以看看教程。似乎它有很多关于自定义
微调器的信息。首先,您必须定义视图(水平线),它是微调器项的分隔线,您可以在运行时使用微调器的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)
    {
    }
});
Spinner move\u sem;//首先定义微调器的id
move_sem.setOnItemSelectedListener(新AdapterView.OnItemSelectedListener()){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id)
{
视图tview1=(视图)View.findViewById(R.id.v_1);
tview1.setBackgroundResource(android.R.color.transparent);
尝试
{
search_sem=Integer.parseInt(semid.get(position));
semname=sem_list.get(位置);
}
捕获(忽略异常)
{
}
}
@凌驾
未选择公共无效(AdapterView父级)
{
}
});

不幸的是,微调器属性与ListView不同,因此您不能使用分隔器、页脚ecc。您找到答案了吗?请使用微调器适配器,该适配器可为自定义布局充气。