我正在使用BackgroundColorSpan
來突出顯示EditText
中的某些文本。我遇到的問題是,如果顏色具有100%alpha並且很難用較低的alpha查看,則文本字段的光標不可見。使用BackgroundColorSpan無法看到光標
我已經做了一些挖通過EditText
和Editor
代碼(用於繪製在EditText
文本)和我發現,裏面Editor.onDraw(...)
光標在佈局(這反過來又繪製了文本)之前畫:
if (highlight != null && selectionStart == selectionEnd && mCursorCount > 0) {
>> drawCursor(canvas, cursorOffsetVertical);
// Rely on the drawable entirely, do not draw the cursor line.
// Has to be done after the IMM related code above which relies on the highlight.
highlight = null;
}
if (mTextView.canHaveDisplayList() && canvas.isHardwareAccelerated()) {
drawHardwareAccelerated(canvas, layout, highlight, highlightPaint,
cursorOffsetVertical);
} else {
>> layout.draw(canvas, highlight, highlightPaint, cursorOffsetVertical);
}
有沒有人知道我該如何扭轉這種行爲?我現在能想到的唯一選擇是要自己繪製光標或做一些反射伏都教。兩者似乎有點矯枉過正。
更新:
我已經在Android問題跟蹤創建一個bug報告如下:https://code.google.com/p/android/issues/detail?id=172001