2016-06-02 3 views
2

テーマを適用してEditTextの下線色を修正しようとしています。EditTextでカスタムテーマを表示すると、選択ハンドルの下線が表示されます

スタイル:

<style name="MyTheme.EditText" parent="Widget.AppCompat.EditText"> 
    <item name="colorControlActivated">@color/green</item> 
</style> 

のEditText:

<EditText 
    android:id="@+id/editText_amount" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:hint="@string/hint_enter_amount" 
    android:theme="@style/MyTheme.EditText"/> 

は基本的に、それは動作しますが、私が選択したり、選択ハンドルも下線が引かれているカーソルを移動しようとします。これはスクリーンショットで見ることができます。

Screenshot

誰かがこの問題を解決する方法を知っていますか?

答えて

5

あなたはeditTextStyle属性を参照するためのあなたのテーマを分離することができ

<EditText 
    style="@style/MyTheme.EditText"/> 

それとも、このスタイルを使用することができます。

<style name="MyEditTextStyle" parent="Widget.AppCompat.EditText"> 
    <item name="colorControlActivated">@color/green</item> 
</style> 

<style name="MyTheme.EditText"> 
    <item name="editTextStyle">@style/MyEditTextStyle</item> 
</style> 

<EditText 
    android:theme="@style/MyTheme.EditText"/> 

さてさて、これらの下線がから来ていますか?

android:themeは、ビューの属性であり、あなたがandroid:themeとしてスタイルを設定すると、ビューのインフレ率の一方で、そのスタイルは、コンテキストをテーマにしたContextThemeWrapperによってラップされます。

あなたは

<item name="android:background">@color/green</item> 

ようandroid:background項目が含まれているスタイルでandroid:themeプロパティを設定するのであれば、その手段は、このテーマの所有者のすべての子ビューには、緑の背景を持っているだろう。

"Widget.AppCompat.EditText"は、と同じスタイルであり、?attr/editTextBackgroundを参照します。そして、v21/values-21.xmlファイル@drawable/abc_edit_text_materialは、editTextBackgroundと定義されています。

たとえば、@drawable/abc_edit_text_materialはEditTextとSelectionHandlersのバックグラウンドになります。

+0

ありがとう、あなたの答えは完璧です。 –

1

親属性を削除する必要があります。これはAPI 23デバイスのみが原因です。

<style name="MyTheme.EditText"> 
    <item name="colorControlActivated">@color/green</item> 
</style> 
0

私は同じ問題がありました。

私のレイアウトでは、青いボックスの中にEdittextが表示されます。私は白いテキストと白い下線と白い選択コントロールを持っていたいと思っていました。 私はすべて私のAppThemeに設定しました。大丈夫だ!

でも、私はRecyclerviewをブルーボックスに吹かれました。 RecyclerViewには、Edittextを含む白いカードがあります。白いテキスト、下線、およびコントロールは、白いカードでは意味をなさない。 :)

私は、テキストの色を変更しようとしました、下線とダークグレーにコントロール。しかし成功なし。私はこの問題のようなコントロールで同じ問題を抱えていました。

解決済みの回答を使ってみましたが、これは私を助けませんでした。 多分私のせいで、わからない。

私はここに私の解決策を投稿しています。質問は既に回答済みです。

iは無制御アイコンにオフセットしている -

android:textColor="@color/darkGray" 
android:textColorHint="@color/darkGray" 
android:theme="@style/RecyclerEditText" 

:私は追加のstyles.xmlインサイド

<style name="RecyclerEditText"> 
    <item name="colorAccent">@color/darkGray</item> 
    <item name="colorControlNormal">@color/darkGray</item> 
    <item name="colorControlActivated">@color/darkGray</item> 
</style> 

とレイアウトXMLでは私がのEditTextの内側に追加しました、二重下線はありません。

ありがとう@litmon! あなたは私を「親を削除する」アイデアに押し込んだ。

関連する問題