Android API 20或以下Change Spinner下划线以编程方式下划线

时间:2018-07-05 00:48:26

标签: android android-spinner

我的问题与上面的问题不同。

我正在为我的应用程序使用一个appcompat主题,并使用setBackgroundTintList()设置微调框的下划线颜色,它可以正常工作。但是,the documentation说,这将在API v21或更高版本上运行时始终生效。如果有人知道如何更改下划线颜色API v20及更低版本,我将不胜感激。

我不能使用styles.xml,因为我需要根据某些条件更改颜色,所以我想弄清楚如何在代码中动态更改它。

更新 好的,现在我可以通过将Spinner更改为AppCompatSpinner并使用ViewCompat.SetBackgroundTintList()来更改Android API 20上的三角形图标颜色。阅读文档时,微调器需要为API 20或更低版本实现TintableBackgroundView。 AppCompatSpinner正在实现TintableBackgroundView。 但是,我仍然看不到下划线:(

1 个答案:

答案 0 :(得分:1)

您可以将XML用作背景,因此背景将显示在所有API版本中。为您的自定义XML布局。例子是

<selector xmlns:android="http://schemas.android.com/apk/res/android">

  <item>
    <layer-list>
       <item>
            <shape android:shape="rectangle">
                <solid android:color="@color/white" />
                <stroke android:width="2px" android:color="@color/darkgray_7" />
                <corners android:radius="5dp" />
            </shape>
       </item>

       <item>
            <bitmap
                android:gravity="right" android:src="@drawable/arrow" />
       </item>
    </layer-list>
  </item>

</selector>