更改微调器指示器可绘制

时间:2013-08-31 00:11:33

标签: android android-layout actionbarsherlock

在4.x设备中,指示这是一个微调器且应该被点击的drawable几乎看不到;它使用的是spinner_ab_default_holo_light.9.png。如何使用spinner_ab_default_holo_dark.9.png或我选择的任何其他绘图?

Can't see spinner indicator

微调器处于对话框中。该应用程序使用ActionbarSherlock 4.3.1 for Android 2.2.3向上兼容性。该应用程序实现Android Action Bar Style Generator以创建Sherlock.Light.DarkActionBar主题。我使用值和值-v14来管理样式。此对话框附加特定样式:

new AlertDialog.Builder(new ContextThemeWrapper(getActivity(), R.style.FibroDialog))

,在Values-v14中,有一个父主题,以确保对话框背景为暗:

<style name="FibroDialog" parent="@android:style/Theme.Holo.Dialog">

</style>

我尝试过的事情:

在Android Action Bar Style Generator生成的主题中,我添加了

<item name="android:spinnerItemStyle">@style/MySpinnerItemStyle</item>

然后添加

<style name="MySpinnerItemStyle" parent="android:TextAppearance.Holo.Widget.TextView.SpinnerItem">
    <item name="android:textColor">#FFF</item>
    <item name="android:background">@drawable/spinner_background_ab_fibromapp</item>
</style>

导致了drawable我实际上想成为项目的背景,而不是微调器。

enter image description here

在微调器的xml中,我试过

android:dropDownSelector="@drawable/spinner_ab_default_fibromapp"

给出与上面相同的结果,

android:popupBackground="@drawable/spinner_ab_default_fibromapp"

用可绘制的内容替换每个微调器项的背景。

作为最后的手段,我制作了自己的spinner_ab_default_holo_dark和spinner_ab_default_holo_light 9-patches;他们根本没有露面。

如何我访问该微调器可绘制并将其更改为我想要的任何图形?

1 个答案:

答案 0 :(得分:1)

虽然我是新手,但我也花了太多时间寻找类似的答案。似乎唯一的解决方案是创建一个样式,它是系统微调器样式的精确副本,并编辑要更改的样式。它很麻烦,很无聊而且不太实用,但如果必须这样做,就必须完成......由于时间限制,我最终改变了我的布局,以至于标准微调器看起来不会太糟糕。