Я создавал текстовый редактор в 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
Приведенный выше результат вышел за пределы диапазона маркеров.
Должен выходить за пределы диапазона маркеров при нажатии на клавишу ввода дважды.