android – HTC Sense / EVO在编写时不尊重EditText颜色
作者:互联网
我在特定设备上遇到问题,Android 2.3.x上的HTC EVO.我认为这可能是HTC Sense特有的问题.
我基本上有一个带有透明背景(#00000000)和白色文本的EditText,设置为允许输入电子邮件地址(inputType是textEmailAddress).
问题:但是,当用户正在编写电子邮件地址时,文本为黑色,因此无法读取.
当用户将焦点更改为另一个视图元素时,文本正确地着色回白色.
如果用户重新关注EditText,则先前输入的文本仍为白色,但任何新文本都是黑色.
如果我从textEmailAddress更改inputType,比如说什么,或者textFilter,那么文本会正确呈现…它仍然是黑色的,但它周围有一个突出显示(由于键盘提供的“建议” – 未在textEmailAddress上显示类型.)因此,它是可读的.缺点是没有电子邮件输入法(键盘上带“@”).
我希望我的文本始终可读(即写入时为白色)并拥有正确的(电子邮件)条目.建议与否,没关系 – 它必须是可读的.
使用的EditText非常简单:
<EditText
android:id="@+id/fieldEmail"
android:layout_width="match_parent"
android:layout_height="42dp"
android:layout_marginTop="10dp"
android:hint="Enter your email"
android:textSize="16dp"
android:textColor="#ffffffff"
android:textColorHint="#ffffffff"
android:textColorLink="#ffffffff"
android:background="#00000000"
android:inputType="textEmailAddress">
</EditText>
有什么建议?我尝试了几种方法,包括改变各种颜色(如果它试图“猜测”选择高亮的文本颜色)并且没有任何作用;没有办法设置正在写入的文本的颜色……它总是黑色的.
解决方法:
我在一些HTC上经历过同样的事情.
当你在EditText中输入时,我实现了一个TextWatcher来强制文本颜色为Spannable
private class HTCEditTextFix implements TextWatcher {
private EditText mEditText;
public HTCEditTextFix(EditText editText) {
mEditText = editText;
}
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
public void onTextChanged(CharSequence s, int start, int before, int count) {
mEditText.getText().setSpan(new ForegroundColorSpan(Color.WHITE), start, start, Spannable.SPAN_COMPOSING);
}
}
然后将其应用于EditText
myEditText1.addTextChangedListener(new HTCEditTextFix(myEditText1));
标签:android,android-edittext,sense 来源: https://codeday.me/bug/20190613/1234075.html