Android:无法设置微调器分隔符

Rus*_*uss 13 android themes spinner divider android-spinner

我正在尝试为我的第一个Android应用程序创建一个主题,它正在推动我绕过弯道.我终于设法弄清楚如何在下拉列表中设置项目样式,但现在我无法更改列表项之间的分隔符的颜色.我在stackoverflow上搜索了类似的问题,并尝试了几十种组合,但似乎没有任何效果.

这是我的styles.xml文件(为清楚起见缩写):

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="MyTheme" parent="android:Theme.Light">
    <item name="android:spinnerStyle">@style/spinnerStyle</item>
    <item name="android:spinnerDropDownItemStyle">@style/spinnerDropDownItemStyle</item>    
    <item name="android:dropDownListViewStyle">@style/spinnerListViewStyle</item>
  </style>

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

  <style name="spinnerDropDownItemStyle" parent="@android:style/Widget.DropDownItem.Spinner">
      <item name="android:background">@drawable/my_theme_spinner_item</item>
      <item name="android:paddingLeft">5dp</item>
      <item name="android:gravity">center_vertical</item>
  </style>

  <style name="spinnerListViewStyle" parent="@android:style/Widget.ListView.DropDown">
      <item name="android:height">3dp</item>
      <item name="android:dividerHeight">3dp</item>
      <item name="android:divider">@color/divider</item>
  </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

无论我做什么,我只是在物品之间得到1dp浅灰色分隔物(我的浅色列表项目背景几乎看不到) - 分隔物的高度和颜色都不会受到影响(我也尝试将其设置为可绘制的,也没有效果).我究竟做错了什么?

chr*_*ton 25

我有一个非常简单的活动与Spinner,它适用于以下.我看到的唯一区别是你有一个<item name="android:height">3dp</item>,我根本没有.

<style name="TestSpinnerStyle" parent="android:style/Widget.ListView.DropDown">
    <item name="android:divider">#ff0000</item>
    <item name="android:dividerHeight">5dp</item>
</style>


<style name="SampleTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:dropDownListViewStyle">@style/TestSpinnerStyle</item>
</style>
Run Code Online (Sandbox Code Playgroud)

在我的活动中我有:

    Spinner spinner = (Spinner) findViewById(R.id.spinner);
    List<String> list = new ArrayList<String>();
    list.add("list 1");
    list.add("list 2");
    list.add("list 3");
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, list);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
    spinner.setAdapter(dataAdapter);
Run Code Online (Sandbox Code Playgroud)

然后对于主布局我有以下XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
        >
    <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Hello World, StylingActivity"
            />
    <Spinner android:id="@+id/spinner"
             android:layout_width="250dp"
             android:layout_height="40dp"
             />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

这是截图

样本活动screnshot

如果你不能从那里开始工作,我可以把整个事情推到一个github回购中.