Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

EditText with custom theme shows underline under selection handle

i am trying to modify the underline color of a EditText by applying a theme.

Style:

<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"/>

Basically it works, but when i try to select or move the cursor the selection handle is also underlined. You can see this in the screenshot.

Screenshot

Does someone know how to fix this?

like image 684
BauerMitFackel Avatar asked Dec 15 '22 06:12

BauerMitFackel


1 Answers

You can use this style as a

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

Or, you can separate your theme for referencing the editTextStyle attribute.

<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"/>

Alright, but where are these underlines come from?

android:theme is an attribute of View and when you set a style as android:theme, that style will be wrapped by ContextThemeWrapper with context theme while in inflation of view.

So that means, if you set android:theme property with style that contains android:background item like

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

every child view of this theme owner will be have a green background.

"Widget.AppCompat.EditText" is a style and references ?attr/editTextBackground as a "android:background". And in v21/values-21.xml file @drawable/abc_edit_text_material is defined as editTextBackground.

So, for your example, @drawable/abc_edit_text_material becomes a background of your EditText and SelectionHandlers.

like image 114
Tolga Okur Avatar answered Feb 28 '23 13:02

Tolga Okur