Comments 17
А теперь челендж:
Врубите Иврит и попробуйте снова!
Вот пример текста:
המייל שלי הוא 🙂 test@test.il,🙂 מספר הטלפון שלי הוא 9725524224+🙂, הכתובת היא גרטסל 14, ת"א😎
И изучите, как ведёт себя курсор.
Похоже в этом случае необходимо работать с RTL, но кажется что это решаемо. Задача специфическая и требует определенной работы перед выходом на специфику иврита
Иврит - не единственная сложная письменность. Но отличный кейс для тестов.
И, да, пока что никто не решил это хорошо.
Я пока текст на сайте выделял - вспотел.
На вскидку могу сказать, что нужно смотреть соседние символы и при наличии RTL - подменять маркер
А как волшебно ведёт себя бэкспейс/делит! Иногда просто невозможно предугадать, слева будет удалён символ, или справа.
С точки зрения пользователя - да, предугадать сложно. Я вообще не понимаю как символ "+" поставить правильно. а с технической - достаточно смотреть позицию курсора и символы рядом. С emoji тут будет сложнее, но кажется, если определить к какому "направлению" будет прилипать оригинальный emoji - то маркер можно снабдить дополнительным символом направления LRM (\u200E) или RLM (\u200F). Тут будут свои сложнойсти с нейтральными символами типа пробелов. Но в итоге получается вполне решаемая техническая задача. Парадокс в том, что решение может не понравиться пользователю )))
Если решение не нравится пользователю, то это не решение.
Чтобы всех все устраивало и работало ожидаемо - придется писать свой курсор
Вообще идея - огонь, отображать направление на курсоре. Жаль, никто так не делает.
Это исправит только часть проблемы. Например будет понятно какой символ удалится, если нажать backspace. А вот как будут выделяться символы - все еще остается рандомом. Вообще задача не кажется супер сложной, и кажется что легко потянет на статью на хабре. Но на сколько вообще востребованно будет такое решение?
Это вы в 90-00х сайты не верстали :)
Не знаю, как кому, но меня бесят все эти новые эмоджи. Я до сих пор не понимаю разницу между смайликами и и эмоджи, но это мое упущение.
В телеге да, есть прикольные эти все стикеры, но мы говорим, про обычные смайлики. Какого черта они превратились в вырвиглаз карикатуры — я не знаю, но догадываюсь…
¯\_(ツ)_/¯
А пробовали использовать кастомный emoji-шрифт через androidx.emoji2:emoji2? И если да, то чем не устроил? С Compose оно работает отлично, как с текстами, так и с полями ввода.
В этом случае вы потеряете всю красотку, которую можете получить с помощью изображений (например анимации). Вам все еще придется использовать шрифтовые ограничения. Плюс вам понадобятся люди умеющие в шрифты
С другой стороны никто не запрещает сделать свой шрифт и в нем уже делать emoji нужного размера, который будет легко замеряться. Объем работ правда будет уже другой.
В общем вариант с emoji2 рабочий но все еще с ограничениями и очень трудоемкий
Почему ваш кастомный emoji будет ломать TextField (и как это починить)