【问题标题】:Android Spinner Underline colorAndroid Spinner 下划线颜色
【发布时间】:2016-09-03 16:27:53
【问题描述】:

我可以使用style="@style/Base.Widget.AppCompat.Spinner.Underlined" 在微调器中添加下划线。如何仅使用样式更改下划线的颜色?我不想使用任何可绘制文件来更改它。

 <item name="colorControlHighlight">@color/colorAccent</item>
 <item name="colorControlNormal">@color/colorAccent</item>

使用上面的样式,当用户点击它时,它只突出显示下划线。它在正常状态下不会改变下划线的颜色。

【问题讨论】:

    标签: android android-spinner android-appcompat underline


    【解决方案1】:

    默认情况下,Spinner 将使用通过android:textColorSecondarycolorControlNormal 在您的AppTheme 中设置的颜色。因此,要么在此处设置适当的颜色,要么定义一个新主题并将其应用于您的 Spinner:

    示例:

    styles.xml

    <style name="ThemeSpinner">
        <!-- Color when pressed -->
        <item name="colorAccent">#ffa000</item>
        <!-- Default color for the dropdown arrow and line -->
        <item name="colorControlNormal">#ffc107</item>
    </style>
    

    layout.xml

    <Spinner
        style="@style/Widget.AppCompat.Spinner.Underlined"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeSpinner" />
    

    注意: 下拉箭头也会被着色 - 我不知道单独为箭头着色的选项

    【讨论】:

    • 如果 Spinner 在 ScrollView 内,这将不起作用。
    • 错误的红色怎么办?有没有办法得到它?
    • @kingston 我从没见过 Spinner 老实说有错误状态
    • 只需尝试在任何 Google 应用中添加新帐户即可。它会询问您的出生日期。输入无效日期,然后按下一步...
    • 我问了一个关于这个的问题:stackoverflow.com/questions/39792721/…
    【解决方案2】:

    将此添加到微调器

    android:backgroundTint="@color/gray"
    

    【讨论】:

      【解决方案3】:

      好像这个问题已经回答了。但这里也是一种以编程方式解决该问题的方法。 (在 API 19 及更高版本上测试)。

      为此使用ViewCompat

      ViewCompat.setBackgroundTintList(spinner, ColorStateList.valueOf(your_color));
      

      【讨论】:

      • 它以一种意想不到的方式应用颜色,因为它将它应用在原始颜色之上
      • 这在我上次尝试时对我有用,但可能需要对你的 UI 进行一些调整,因为自从我上次使用以来,android Compat 库和组件已经发生了变化。
      猜你喜欢
      • 2020-04-21
      • 1970-01-01
      • 1970-01-01
      • 2011-12-02
      • 2012-09-15
      • 2019-02-13
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多