1. ホーム

[解決済み】appcompat v7でEditTextの最下行の色を変更する。

2022-03-26 17:04:56

質問

Android 5 以下で見た目を統一するために appcompat v7 を使っています。割とうまくいっています。しかし、EditTextsの下線の色とアクセントカラーを変更する方法がわかりません。可能でしょうか?

を定義してみました。 android:editTextStyle (しかし、背景色や文字色の変更には成功しましたが、下線やアクセントカラーは変更できませんでした。使用すべき特定のプロパティ値があるのでしょうか? android:background 16進数で色を指定することはできないのでしょうか?

 <style name="Theme.App.Base" parent="Theme.AppCompat.Light.DarkActionBar">
     <item name="android:editTextStyle">@style/Widget.App.EditText</item>
 </style>

 <style name="Widget.App.EditText" parent="Widget.AppCompat.EditText">
     ???
 </style>

android API 21のソースによると、マテリアルデザインを使用したEditTextは、以下のようになるようです。 colorControlActivatedcolorControlNormal . そのため、以前のスタイル定義でこれらのプロパティをオーバーライドしようとしましたが、効果がありません。おそらく、appcompatはこれを使用していないのでしょう。残念ながら、マテリアルデザインを使ったappcompatの最後のバージョンのソースが見つかりません。

解決方法は?

ようやく、解決策が見つかりました。それは、単に colorControlActivated , colorControlHighlightcolorControlNormal を編集テキストスタイルではなく、アプリテーマの定義に追加してください。そして、このテーマをどのような活動にも利用できるように考えてください。以下はその例です。

<style name="Theme.App.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorControlNormal">#c5c5c5</item>
    <item name="colorControlActivated">@color/accent</item>
    <item name="colorControlHighlight">@color/accent</item>
</style>