【问题标题】:Android Appcompat v21 - use old spinner styleAndroid Appcompat v21 - 使用旧的微调器样式
【发布时间】:2014-12-11 23:02:18
【问题描述】:

我在一个项目中使用 appcompat v21,但我不喜欢它默认附带的新微调器。这个新的微调器只带有一个小的向下箭头,表明它的存在。我更喜欢在 4.x 版本的 android 中使用的旧微调器,它带有类似 EditText 的功能,在小部件的内容下划线和右下角的箭头。

如何在仍然使用 appcompat v21 的同时实现这种微调器样式?

想要的微调器样式:

不受欢迎的旋转器的照片:

所需微调器的照片:

【问题讨论】:

    标签: android android-widget android-spinner android-appcompat


    【解决方案1】:

    您可以简单地将 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" />
    

    虽然有两个缺点,但这会让你回到旧的 Spinner 样式:

    1. 此解决方案仅适用于 API 级别 14 及更高版本(没什么大不了的)
    2. 下拉弹出窗口的外观由“框架”管理 - 这意味着在棒棒糖之前的设备上,弹出窗口将出现在Spinner 下方。从 Lollipop 开始,它将位于 Spinner 上方(afaik 无法更改)。关于这一点,请参见以下比较(在棒棒糖前左侧)

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

    【讨论】:

    • @reVerse :但是当我使用“/Widget.Material.Light.Spinner”时,它仍然显示棒棒糖及以上的深色主题。
    【解决方案2】:
        <Spinner
        android:id="@+id/spinner_nav"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:spinnerMode="dropdown"
        android:overlapAnchor="false"
        style="@style/Platform.Widget.AppCompat.Spinner"/>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多