appcompat v7でEditTextの下の行の色を変更する 質問する

appcompat v7でEditTextの下の行の色を変更する 質問する

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 のソースによると、マテリアル デザインの EditTexts はcolorControlActivatedと を使用しているようですcolorControlNormal。そのため、以前のスタイル定義でこれらのプロパティをオーバーライドしようとしましたが、効果はありませんでした。おそらく、appcompat はこれを使用していません。残念ながら、マテリアル デザインを使用した最新バージョンの appcompat のソースを見つけることができません。

ベストアンサー1

ついに、解決策を見つけました。これは、edittext スタイルではなく、アプリのテーマ定義で、および の値を上書きするだけです。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>

おすすめ記事