在 4.x 设备中,指示这是一个微调器并且应该被单击的可绘制对象几乎不可见;它正在使用 spinner_ab_default_holo_light.9.png。我怎样才能让它使用 spinner_ab_default_holo_dark.9.png 或我选择的任何其他可绘制对象?
微调器位于对话框中。该应用程序使用 ActionbarSherlock 4.3.1 以实现 Android 2.2.3 向上兼容性。该应用程序实现了Android 操作栏样式生成器以创建 Sherlock.Light.DarkActionBar 主题。我正在使用 Values 和 Values-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,而不是微调器。
在微调器的 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;他们根本没有出现。
如何访问该微调器可绘制对象并将其更改为我想要的任何图形?