Android API 20 or Lower 以编程方式更改微调器下划线颜色
Android API 20 or Lower Change Spinner Underline color programatically
我的问题和上面的问题不一样
我正在为我的应用程序使用 appcompat 主题,并使用 setBackgroundTintList() 设置微调器下划线颜色并且它有效。但是,the documentation 表示当 运行 在 API v21 或更新版本上时,这将始终生效。如果有人知道如何更改下划线颜色 API v20 及更低版本,我将不胜感激。
我不能使用 styles.xml,因为我需要根据某些条件更改颜色,所以我想弄清楚如何在代码中动态更改它。
更新
好的,现在我可以通过从 Spinner 更改为 AppCompatSpinner 并使用 ViewCompat.SetBackgroundTintList() 来更改 Android API 20 上的三角形图标颜色。阅读文档,微调器需要为 API 20 或更低版本实施 TintableBackgroundView。 AppCompatSpinner 正在实施 TintableBackgroundView。
但是,我仍然看不到下划线:(
您可以使用 XML 作为背景,这样背景将出现在所有 API 版本中。为 SPINNER 定制 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>
我的问题和上面的问题不一样
我正在为我的应用程序使用 appcompat 主题,并使用 setBackgroundTintList() 设置微调器下划线颜色并且它有效。但是,the documentation 表示当 运行 在 API v21 或更新版本上时,这将始终生效。如果有人知道如何更改下划线颜色 API v20 及更低版本,我将不胜感激。
我不能使用 styles.xml,因为我需要根据某些条件更改颜色,所以我想弄清楚如何在代码中动态更改它。
更新 好的,现在我可以通过从 Spinner 更改为 AppCompatSpinner 并使用 ViewCompat.SetBackgroundTintList() 来更改 Android API 20 上的三角形图标颜色。阅读文档,微调器需要为 API 20 或更低版本实施 TintableBackgroundView。 AppCompatSpinner 正在实施 TintableBackgroundView。 但是,我仍然看不到下划线:(
您可以使用 XML 作为背景,这样背景将出现在所有 API 版本中。为 SPINNER 定制 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>