Android Appcompat v21 - 使用旧的微调器样式

del*_*vee 11 android android-appcompat android-widget android-spinner

我在项目中使用appcompat v21,但我不喜欢它默认带来的新spinner.这个新的旋转器只带有一个向下的小箭头,指示它的存在.我更喜欢在4.x版本的android中使用的旧微调器,它带有类似EditText的功能,用于强调小部件的内容和右下角的箭头.

如何在使用appcompat v21的同时实现这种微调器的风格?

不受欢迎的微调风格:

不受欢迎的微调器的照片:

不受欢迎的旋转器的照片

想要的微调器的照片:

所需旋转器的照片

reV*_*rse 29

您可以简单地将Spinner的样式设置为 Widget.Holo.Light.Spinner

<Spinner
    android:id="@+id/spinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="@android:style/Widget.Holo.Light.Spinner" />
Run Code Online (Sandbox Code Playgroud)

虽然存在两个缺点,但这将为您提供旧的Spinner-Style背面:

  1. 此解决方案仅适用于API级别14及以上(没有那么大的交易)
  2. DropDown Popup-Window的外观由"框架"管理 - 这意味着在Lollipop之前的设备上,Popup-Window将出现在Spinner.从Lollipop开始它将在Spinner之上(afaik没有办法改变它).关于这一点,请参阅以下比较(左前棒棒糖)

微调器比较

如果您希望自定义DropDown的行,可以通过调用Spinner适配器上的setDropDownViewResource(int)并引用您自己的布局来实现.