EditText的句柄带有下划线

时间:2017-04-18 07:59:10

标签: android android-edittext

我最近遇到了一个问题,就是将edittext的默认下划线条从默认的黑色更改为白色。

我使用了这个解决方案,在我看来,改变EditText的风格是最好的做法:

的EditText

<android.support.v7.widget.AppCompatEditText
    android:id="@+id/nom"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/Activity_Main_EditText_Nom"
    android:imeOptions="actionNext"
    android:paddingBottom="10dp"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:paddingTop="10dp"
    android:textColor="@android:color/white"
    android:textColorHint="@color/activityBackground"
    android:theme="@style/EditTextStyle"
    android:visibility="gone"
/>

style.xml

<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowDisablePreview">true</item>
    <item name="android:windowBackground">@color/activityBackground</item>
    <item name="windowActionBar">false</item>
    <item name="actionMenuTextColor">@android:color/white</item>
    <item name="android:windowNoTitle">true</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<style name="EditTextStyle" parent="Widget.AppCompat.EditText">
    <item name="colorControlNormal">@android:color/white</item>
    <item name="colorControlActivated">@color/colorAccent</item>
    <item name="colorControlHighlight">@color/colorAccent</item>
</style>

有效!但它还在EditText的句柄中添加了一个下划线栏......

Underlined handlers

有什么想法吗?

应答

通过与@rafsanahmad007讨论,我们终于找到了最终解决方案。

style.xml

<resources>

    <style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowDisablePreview">true</item>
        <item name="android:windowBackground">@color/activityBackground</item>
        <item name="windowActionBar">false</item>
        <item name="actionMenuTextColor">@android:color/white</item>
        <item name="android:windowNoTitle">true</item>
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <style name="MyTheme.EditText" parent="MyTheme">
        <item name="colorControlNormal">@android:color/white</item>
        <item name="colorControlActivated">@color/colorAccent</item>
        <item name="colorControlHighlight">@color/colorAccent</item>
    </style>

</resources>
像往常一样,

MyTheme应用于应用程序。如果您想调整EditText只需添加它:

的EditText

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

2 个答案:

答案 0 :(得分:2)

问题在于你的风格主题..父

使用以下代码:

<android.support.v7.widget.AppCompatEditText
    android:theme="@style/MyStyle.EditText"/>

现在在你的styles.xml

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

<style name="MyEditTextStyle" parent="Widget.AppCompat.EditText">
    <item name="colorControlNormal">@android:color/white</item>
    <item name="colorControlActivated">@color/colorAccent</item>
    <item name="colorControlHighlight">@color/colorAccent</item>
</style>

尽量不要直接使用主题父

编辑

在基本主题中添加color属性

 <style name="Theme.App.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorControlNormal">@android:color/white</item>
    <item name="colorControlActivated">@color/colorAccent</item>
    <item name="colorControlHighlight">@color/colorAccent</item>
</style>

确保在清单中选择活动中的主题...

答案 1 :(得分:0)

使用此doc.I认为此URL有助于解决您的问题。

http://www.materialdoc.com/edit-text/