【问题标题】:Styling a Spinner, appcompat, material为 Spinner、appcompat、材质设置样式
【发布时间】:2015-03-20 17:18:33
【问题描述】:

所以我的应用主题扩展自 AppCompat 的 Material Light 主题和 Dark Action Bar。

我应用了强调色。

现在我尝试在深色背景上使用微调器,并且由于主题的原因,微调器有一个深灰色箭头,按下时会变为强调色。

如何使这个微调器的箭头变白,以便在深色背景上突出显示?

这是 Spinner 的图像:

【问题讨论】:

  • 可以发截图吗?如果深色区域是用 Java 创建的,您可以查看 ContextThemeWrapper
  • @EugenPechanec 我附上了旋转器的图像。
  • 我希望您看到的右箭头为白色,同时保持我应用的强调色。

标签: android android-appcompat material-design


【解决方案1】:

所以支持库 22.1 允许在视图上使用 android:theme 属性。这应该会有所帮助。

【讨论】:

    【解决方案2】:

    如果您想在应用程序范围内应用相同的微调器样式,则在您的 values/styles.xml 中,使用您的自定义样式覆盖 spinnerStyle,该样式派生自 appcompat 类型并覆盖 android:background

    <style name="AppTheme" parent="Theme.AppCompat.Light">
        <item name="android:spinnerStyle">@style/AppSpinner</item>
    </style>
    
    <style name="AppSpinner" parent="Widget.AppCompat.Spinner">
        <item name="android:background">@drawable/your_spinner_background</item>
    </style>
    

    如果您需要一种快速生成微调器背景的方法,请尝试 android-holo-colors,选择 Colored Spinner 并提供您的强调色。

    【讨论】:

    • 如果我正在使用 pre lollipop,您的回答会有所帮助,我只需要使用可绘制的选择器并将其替换为您所解释的主题,但是使用新的 appcompat 和 lollipop 小部件重音应该有一个不同的做法。
    【解决方案3】:

    使用 android:background 你可以指定你自己的背景资源。我发现箭头相当无用(点击微调器即使没有箭头也会带来下拉菜单)所以如果您不想绘制自定义箭头图像,只需将背景保留为黑色或透明即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-21
      • 1970-01-01
      • 2016-01-16
      • 2015-02-04
      • 2020-10-17
      • 2023-03-28
      相关资源
      最近更新 更多