Как избежать пролета SPAN_INCLUSIVE_INCLUSIVE в Android EditText при нажатии Enter? - PullRequest
0 голосов
/ 06 февраля 2019

Я создавал текстовый редактор в Android с нуля (так как я хотел, чтобы он был легким и имел полный контроль над ним).Я использую QuoteSpan или / и BulletSpan на EditText с SPAN_INCLUSIVE_INCLUSIVE / SPAN_EXCLUSIVE_INCLUSIVE, чтобы маркеры и quoteSpan продолжались на следующей строке, когда пользователь нажимает ввод в EditText.

Конечный результат, как и ожидалось, маркеры появляются на следующей строке, когда пользователь нажимает клавишу ввода.Но теперь он превращается в бесконечный цикл, в котором при нажатии кнопки ввода на следующей строке появляется пуля.

Как мне избежать этого бесконечного цикла?Например, в других текстовых редакторах вы можете выйти из нее, дважды нажав клавишу ввода?

// this code is inside a bulletBtn.onClickListener();
// bodyEt is the EditText;
start = bodyEt.getSelectionStart();
end = bodyEt.getSelectionEnd();
bodyEt.getText().setSpan(new BulletSpan(), start, end, Spanned.SPAN_EXCLUSIVE_INCLUSIVE);

Фактический результат:

• 1
• 2
• 3




• lorem ipsum solor dit

Нажатие Enter не выходит за пределы диапазона пули в результатевыше.

Ожидаемый результат:

• 1
• 2
• 3

Lorem ipsum solor dit

Приведенный выше результат вышел за пределы диапазона маркеров.
Должен выходить за пределы диапазона маркеров при нажатии на клавишу ввода дважды.

...