EditText clearComposingText в TextWatcher (необходимо удалить подчеркивание автозамены в ОС Android 4.4)

Я пытаюсь сделать что-то похожее на этот пост (Как удалить автоматическое подчеркивание Android в EditText?), где я хочу удалить подчеркивание, пока пользователь печатает. Я делаю форматированный текстовый редактор и не хочу, чтобы подчеркивания автозаполнения были перепутаны с подчеркиваниями, которые являются частью форматированного текста.

У меня есть RichTextEditor (который представляет собой редактор форматированного текста, который расширяет AppCompatEditText) и с внутренним классом RichTextEditorTextWatcher. Я делаю RichTextEditor.this.clearComposingText() каждый раз, когда пользователь печатает, потому что я не хочу видеть подчеркивание, когда пользователь печатает.

Проблема: когда я удаляю строку MyEditText.this.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);, каждый раз, когда пользователь вводит текст, предложение всего слова добавляется как часть любого ввода, что совершенно неправильно.

например когда я набираю «A», затем «d», затем «e», я получаю «AAdAde» в тексте редактирования.

Вставка RichTextEditor.this.clearComposingText(); в beforeTextChanged тоже не работает.

Что мне нужно, так это удаление подчеркивания автозаполнения с сохранением другого поведения (т.е. мне нужен textMultiline и т. д., как в моем атрибуте inputType в XML).

Как я могу это исправить?

ПРИМЕЧАНИЕ. Эта проблема с появлением подчеркивания автозаполнения возникает только в ОС 4.4 (Samsung Galaxy S4). Похоже, что android:inputType="textNoSuggestions" не влияет на эту версию Android, но работает на более поздних версиях Android.

public class RichTextEditor extends AppCompatEditText
{


    public class RichTextEditorTextWatcher implements TextWatcher
    {
        @Override
        public void afterTextChanged(Editable e)
        {
            //other implementation not shown here
        }
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count)
        {
             RichTextEditor.this.clearComposingText();
             RichTextEditor.this.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
        }
    }  

}

<com.my.app.RichTextEditor android:id="@+id/rich_text_editor"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:gravity="top"
    android:imeOptions="flagNoExtractUi"
    android:inputType="textMultiLine|textCapSentences|textLongMessage|textNoSuggestions"
    android:isScrollContainer="true"
    android:minHeight="100dp"
    android:scrollbarAlwaysDrawVerticalTrack="true"
    android:scrollbars="vertical" />

Я пробовал предложения здесь: http://charlesharley.com/2011/programming/disabling-android-textview-suggestions, но они не работают на Samsung Galaxy S4. то есть следующее не работает:

<TextView android:inputType="textVisiblePassword" /> <TextView android:inputType="textFilter" />


person VIN    schedule 01.11.2016    source источник