Что вы можете сделать, это создать собственный менеджер, который является контейнером для EditFields и BitmapFields.Когда пользователь нажимает на начальный EditField, который находится внутри вашего менеджера, и начинает печатать, вы позволяете им печатать, пока они не захотят смайлика.Когда они выбирают его, вы создаете BitmapField сразу после EditField, а затем размещаете новый EditField справа от BitmapField.Вам нужно будет отслеживать такие вещи, как когда пользователь нажимает клавишу Backspace и очищает EditField, он должен быть удален, а затем он выбирает BitmapField, а последующее Backspace удаляет BitmapField и фокусируется на предыдущем EditField.
Вы также должны будете создать свой собственный EditField, которым вы можете управлять размером, и BitmapField, который позволяет backspace удалить его.
Насколько я могу подумать, у вас не должно возникнуть проблем с использованием этого для 5.0
Редактировать для комментариев:
Вы будетеВы должны реализовывать свой собственный sublayout () вашего менеджера при любом подходе, который вы используете, чтобы вы знали позиции, потому что именно вы их туда поместили.Если вы хотите сделать многострочным (мой подход был для однострочного), вы можете сделать одну из трех вещей:
1.) Просто создайте новые EditFields для каждой строки и выполните связывание таким же образом.как я говорил о том, где Backspace отбрасывает вас к предыдущему полю, в данном случае к последней строкеВы должны следить за тем, насколько велико поле на основе текста, и посмотреть, переместит ли это его на следующую строку.Если он просто отрегулирует, где расположены поля EditFields.
2.) Вы можете разместить свое изображение в многострочном поле, реализовав свой собственный EditField, который увеличивает высоту, и в этом случае вы будете знать, где находитсятекст и какие строки вы находитесь на.Рисование растрового изображения будет зависеть от расчета (какой у вас номер строки) * (высота шрифта) и getAdvance (text_up_to_bitmap).
3.) Реализуйте свой собственный EditField, где у вас есть фокусируемый менеджер, который вы вручную делаете весь рисунок.Вы можете анализировать строку, которую вы сохраняете, при захвате клавиш и, возможно, иметь флаг, где должен быть смайлик.Нарисуйте текст перед ним, нарисуйте смайлик, затем продолжайте рисовать текст.Сложность в том, что вам придется делать такие вещи, как определение местоположения курсора, запуск виртуальной клавиатуры и выполнение некоторых других задач, которые EditField выполняет для вас.