style="@style/Base.Widget.AppCompat.Spinner.Underlined"
を使用して、スピナーに下線を追加できます。スタイルのみを使用して下線の色を変更するにはどうすればよいですか?これを変更するためにドローアブルファイルを使用したくありません。
<item name="colorControlHighlight">@color/colorAccent</item>
<item name="colorControlNormal">@color/colorAccent</item>
上記のスタイルを使用すると、ユーザーがクリックしたときに下線だけが強調表示されます。通常の状態では下線の色は変わりません。
デフォルトでは、Spinner
はcolorControlNormal
のAndroid:textColorSecondary
またはAppTheme
で設定された色を使用します。そこで適切な色を設定するか、新しいテーマを定義してこれをスピナーに適用します。
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" />
注:ドロップダウン矢印にも色が付きます-私は気づいていません矢印を個別に色分けするオプション
この質問はすでに回答されているようです。しかし、これもプログラムでそれを解決する方法です。 (API 19以上でテスト済み)。
これにはViewCompat
を使用します。
ViewCompat.setBackgroundTintList(spinner, ColorStateList.valueOf(your_color));
これをスピナーに追加
Android:backgroundTint="@color/gray"