나는 내 자신의 몽고어 세로 스크립트 TextView
(및 EditText
)을 처음부터 View
까지 확장하여 만들고 있습니다. 깜박이는 커서가 Android TextView
source code에 어떻게 구현되는지 이해하려고합니다. Editor
class의 mEditor
인스턴스가 처리하는 것으로 보입니다.Android EditText (TextView)가 깜박이는 커서를 어떻게 그리나요?
private void drawCursor(Canvas canvas, int cursorOffsetVertical) {
final boolean translate = cursorOffsetVertical != 0;
if (translate) canvas.translate(0, cursorOffsetVertical);
for (int i = 0; i < mCursorCount; i++) {
mCursorDrawable[i].draw(canvas);
}
if (translate) canvas.translate(0, -cursorOffsetVertical);
}
분명히 커서 자체가 어떤 종류의 Drawable
입니다 : 클래스에서 나는 drawCursor
방법을 발견했다.
그래서 조각을 찾고 있지만 나무를 통해 숲을 볼 수는 없습니다. 이 말을 잘 이해하는 사람이 깜박이는 커서가 작동하는 방식을 영어로 말해 줄 수 있습니까? 여기
내가 정말 이해가되지 않는 일부 특정 지점입니다- 커서 년대
TextView
(또는EditText
)의 관계,Layout
,Editor
및Drawable
. - 커서가 깜박일 때마다 모든 텍스트가 다시 그려지거나 커서 영역 만 있습니까?
참고 : 나는 그것을 요청으로
허용 된 대답은 내 질문에 대답을 제공합니다. 그러나 누군가가 더 자세히 설명 할 수있는보다 표준적인 것을 추가 할 수 있다면 다른 대답을 받아 들일 수있어서 기쁩니다.
트릭은 GitHub의 거기에 특정 코드 라인에 연결 자체 upvote 가치. – Suragch