安卓下拉选项菜单分割线颜色

9

我有一个这样样式的旋转器

<style name="OptionsSpinner" parent="android:Widget.Spinner">
    <item name="android:background">@drawable/spinner_background</item>
    <item name="android:spinnerMode">dropdown</item>
    <item name="android:dropDownListViewStyle">@style/SpinnerDropdown</item>
</style>

<style name="SpinnerDropdown">
    <item name="android:divider">#ff0000</item>
</style>

但是SpinnerDropDown样式没有任何效果,分隔符是灰色或默认颜色。我该如何为Spinner中的分隔符设置样式?

1个回答

51

你是直接在 Spinner 组件的 style 属性中使用这种样式吗?如果是,那就是为什么它不起作用的原因。你应该使用应用程序的 theme 样式来设置分隔线的样式。

要设置分隔线样式,请按照以下步骤操作:

在你的应用程序主题中,你应该有 itemandroid:dropDownListViewStyle

<style name="applicationTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:dropDownListViewStyle">@style/mySpinnerStyle</item>
</style>

而且,分隔符的样式(mySpinnerStyle)是在以下位置定义的:

<style name="mySpinnerStyle" parent="android:Widget.ListView.DropDown">
    <item name="android:divider">#00ff00</item>
    <item name="android:dividerHeight">1dp</item>
</style>

现在你的Spinner上有一个绿色的分隔符 :)


7
当Spinner设置为默认模式dropdown时,这里应用的样式有效;如果将Spinner模式设置为dialog,则该样式无效! - E_X
为什么在Spinner的样式属性中直接使用样式时,样式不会被应用?有任何想法吗? - DevAndroid
2
如果我的活动中有两个需要不同分隔线颜色的下拉框,那么您建议的方法将无法使用。 - DevAndroid
1
@DevAndroid 请看下面我的回答 - Denys Kniazhev-Support Ukraine
下面的答案在哪里? - DevAndroid
@DevAndroid,请查看我的答案 https://dev59.com/tm455IYBdhLWcg3wD_oB#47266365 - YTerle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接