如何更改Spinner箭头的颜色或图标

3

我只想改变Spinner箭头的颜色(使用@color或@drawable)。

enter image description here

这是唯一有效果的代码,它将可绘制对象作为整个下拉框背景。(我已尝试了许多其他想法,但没有成功)

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="android:spinnerStyle">@style/SpinnerColor</item>
</style>

<style name="SpinnerColor" parent="Base.Widget.AppCompat.Spinner">
    <item name="android:background">@drawable/ic_add_white_24dp</item>
</style>

这是我如何对Spinner进行填充的方法。
mNavigationSpinner = new Spinner(getSupportActionBar().getThemedContext());
mNavigationSpinner.setAdapter(spinnerAdapter);

mNavigationSpinner.setOnItemSelectedListener(this);
toolbar.addView(mNavigationSpinner);

你是在ActionBar/Toolbar上下文中还是在Activity上下文中填充你的Spinner?Toolbar上下文是深色主题(由于.DarkActionBar),并且将具有浅色的?attr/colorControlNormal色调。 - alanv
嘿@alanv,我发布了一些关于我如何充气我的“Spinner”的代码。(它在一个“工具栏”中)。我将colorControlNormal设置为白色,但只有汉堡包按钮发生了变化。 - Michael
3个回答

2

这是我的修复。

工具栏中,我忘记了一个样式调用。

在toolbar.xml文件中

这个

app:theme="@style/ThemeOverlay.AppCompat.Light"

改为这个

app:theme="@style/ThemeOverlay.AppCompat"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"

看起来和这个完全一样。


1

好的。您可以使用以下代码更改下拉箭头的颜色。

在您的styles.xml文件中,只需添加此属性即可。

 <item name="android:colorControlNormal">@color/colorAccent</item>

例如。
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
       <item name="android:colorControlNormal">@color/colorAccent</item>
    </style>

0
尝试修改。
<item name="android:spinnerStyle">@style/SpinnerColor</item>

<item name="android:actionDropDownStyle">@style/SpinnerColor</item>

在哪里

<item name="android:background">@drawable/ic_add_white_24dp</item>

在SpinnerColor样式中,StateListDrawable是一个。StateListDrawable的项目是9-patch可绘制对象。


抱歉,没什么变化...如果你想看看我如何扩大“Spinner”,我已经更新了我的帖子。 - Michael

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