Android EditText的句柄带有下划线

Android EditText的句柄带有下划线,android,android-edittext,Android,Android Edittext,我最近遇到了一个问题,那就是将edittext的默认下划线栏从默认的黑色更改为白色 我使用了这个解决方案,在我看来,它是通过更改EditText的样式来实现的最佳实践: EditText <android.support.v7.widget.AppCompatEditText android:id="@+id/nom" android:layout_width="match_parent" android:layout_hei

我最近遇到了一个问题,那就是将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"
/>
<EditText
     ...
     android:theme="@style/MyTheme.EditText"
     ...
/>

使用此文档。我认为此URL将对您的问题有帮助


问题在于你的风格主题。。母公司

使用以下代码:

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

@样式/MyEditTextStyle
@android:彩色/白色
@颜色/颜色重音
@颜色/颜色重音
尽量不要直接使用父主题

编辑

在基本主题中也添加颜色属性

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

@android:彩色/白色
@颜色/颜色重音
@颜色/颜色重音

确保您在清单中的活动中选择了主题…

您可以检查这个答案@visheshchandra谢谢这个链接,那些处理程序/指示器/游标有这么多的名称,我没有遇到这个!不幸的是,更改EditText的颜色过滤器会带来一些问题,比如在选中它时禁用颜色从白色更改为colorAccent等等。一般提示:除非你想子类化
EditText
,否则你不需要使用
AppCompatiEditText
@Sufian True,我以前使用过一些
app:
属性,所以我需要
appcompatitedtext
,但现在我可能会切换回
EditText
。这可能是因为您使用的是
android:theme
。如果您设置
样式
而不是
android:theme
,手柄的下划线会消失吗?谢谢您的路过,不幸的是,您的链接并没有真正提到我的问题:/link 404 not found手柄的下划线已消失,但未选中时EditText的下划线不是白色的。我遗漏了什么吗?使用editText.getBackground().setColorFilter(R.color.white,PorterDuff.Mode.SRC_IN)…用于下划线颜色..设置ColorFilter在选择EditText时禁用从白色到colorAccent的颜色更改。
colorcontrolNormal
white应该可以工作…您测试的api是什么?我对它进行了测试,它的工作原理是
minsdkversion15
targetsdkversion21
,手机是23。我把我的主题添加到问题中。
 <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>
 <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>