특정 색인 범위에서 TextWatcher를 사용할 때 Spannable.EXCLUSIVE_INCLUSIVE 플래그로 ForegroundColorSpan을 적용하려고합니다.Google 키보드를 입력으로하여 EditText를 잃는 경우
내 장치의 기본 입력 (삼성 키보드)으로 문제가 없으며 모든 것이 예상대로 작동하지만 Google 키보드를 입력으로 사용하면 다른 이야기입니다.
내 디버깅에서 한 글자를 변경하더라도 Google 키보드에서 전체 단어를 찾습니다. 워드 교정 기능 때문입니다. 결과적으로 Span이 단어의 특정 지점 (심지어 마지막에)에 적용되고 사용자가 더 많은 텍스트를 입력하면 범위가 사라집니다. 유일한 예외는 범위가 단어의 마지막 문자에 적용되고 사용자가 공백을 입력하면 (단어를 "끝내는"경우).
내가 발견 한 해결 방법은 입력 내용이 전체 단어인지, 아니면 언제든지 스팬을 다시 적용하는 것입니다. 그게 효과가 있지만, 매번 마지막에 캐럿을 설정해야하고, 피할 수있을 때 스핀을 다시 적용해야한다는 사실 때문에 아주 좋은 해결책은 아닙니다 (Spannable.EXCLUSIVE_INCLUSIVE 플래그를 사용하는 이유입니다.).
P. 나는 INCLUSIVE_INCLUSIVE와 같은 다른 플래그를 시도했지만 sorta는 작동합니다. 그러나 스팬을 역방향으로 적용하여 지정한 인덱스가 아닌 전체 단어에 스팬을 적용합니다.
이 문제에 대한 더 나은 해결책이 있습니까?