【发布时间】:2013-08-31 00:11:32
【问题描述】:
在 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 Action Bar Style Generator 以创建 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;他们根本没有出现。
我如何可以访问该微调器可绘制对象并将其更改为我想要的任何图形?
【问题讨论】:
标签: android android-layout actionbarsherlock