删除EditText中的其他下划线
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了删除EditText中的其他下划线相关的知识,希望对你有一定的参考价值。
我有自定义背景drawable的EditText:
EditText代码:
<EditText
android:id="@+id/etName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@{ViewModel.isAllowEdit ? @drawable/profile_et_background_active : @drawable/profile_et_background}"
android:inputType="@{ViewModel.isAllowEdit ? InputType.TYPE_CLASS_TEXT : InputType.TYPE_NULL}"
android:text="@={ViewModel.name}"
android:textColor="@color/main_dark_text_color" />
我正在使用android数据绑定库和MVVM架构。
如果ViewModel将isAllowEdit设置为true,则将EditText背景设置为@ drawable / profile_et_background_active。
如果isAllowEdit为false,则EditText的背景设置为@ drawable / profile_et_background。
此外,我通过将inputType设置为TYPE_NULL来禁止编辑,并通过将inputType设置为TYPE_CLASS_TEXT来允许编辑。
@ drawable / profile_et_background_active代码:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/transparent" />
</shape>
</item>
<item
android:left="-2dp"
android:right="-2dp"
android:top="-2dp">
<shape>
<solid android:color="@android:color/transparent" />
<stroke
android:width="1dp"
android:color="@color/main_elements_line_color" />
</shape>
</item>
</layer-list>
@ drawable / profile_et_background代码:
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/transparent" />
</shape>
</item>
当允许编辑并且用户开始在EditText中键入文本时,在键入的单词下会出现另外的下划线(它只属于当前键入的单词,EditText文本的所有其他部分都没有下划线):
我试图通过向EditText添加颜色过滤器来删除下划线:
et.setColorFilter(getResources().getColor(android.R.color.transparent), PorterDuff.Mode.SRC_IN)
但它不起作用。
如何删除额外的下划线?
更新1
我已经尝试添加@android:color / transparent,我收到错误:
“java.lang.Integer无法强制转换为android.graphics.drawable.Drawable”
更改“@ {ViewModel.isAllowEdit?@ drawable / profile_et_background_active:@ drawable / profile_et_background}”时
to“@ {ViewModel.isAllowEdit?@ drawable / profile_et_background_active:@android:color / transparent}”
更新2
添加InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS对我不起作用。所以我想这不是拼写检查的问题。
您可以将EditText设置为具有自定义透明可绘制或仅使用
android:background="@android:color/transparent".
在xml中使用inputType textNoSuggestions
。
<EditText
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:inputType="text|textNoSuggestions"/>
InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS是使用代码的等效标志
据我所知。在editText中使用它
android:background="@android:color/transparent"
如果你想停止你输入的拼写检查文本然后使用
android:inputType="textNoSuggestions"
我已经看到了上面给出的所有有效答案。但在最后一次尝试你可以这样:
mEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mEditText.clearComposingText();
}
},200);
}
});
ClearComposingText方法将帮助您。希望这可以帮助。
以上是关于删除EditText中的其他下划线的主要内容,如果未能解决你的问题,请参考以下文章