Лучшее решение для пользовательских вводов, таких как ввод текста
Мне просто интересно, что будет лучшим решением для получения ввода текста от пользователя в PlayN. Я не нашел ничего, что я мог бы использовать для достижения этой цели, я думаю, что лучшим решением будет сделать что-то вроде ввода HTML для написания текста, но это будет не так просто, потому что нам нужно уметь использовать в примере виртуальная клавиатура от Android (на платформе Android) и обычная клавиатура на бэкэнде HTML. Даже тогда я думаю, что будет очень трудно (или невозможно) вызвать клавиатуру Android в игре...
Я думаю о создании виджета в библиотеке tripleplay UI (потому что я буду его использовать), но это закончится рендерингом виртуальной клавиатуры на экране для пользовательских вводов... кнопок от az и т.д...
Интересно, есть ли лучшее решение для этого, или мне нужно реализовать что-то, как я написал выше (например, tripleplay widget)?
1 ответ
Уже есть виджет Tripleplay для ввода текста, который называется Field.
Однако он очень примитивен и еще не работает на мобильных платформах (он будет работать на устройстве Android с аппаратной клавиатурой). Нам нужно предоставить API в PlayN для отображения виртуальной клавиатуры, но до этого времени у него нет возможности вызвать отображение виртуальной клавиатуры.
Однако я не рекомендую использовать это для какого-либо существенного ввода текста. Он не поддерживает (и никогда не будет) вырезать и вставлять, или методы ввода языка, или любые другие чрезвычайно сложные функции, которые пользователи ожидают от ввода текста.
Я хотел бы добавить API для PlayN, как:
Keyboard.requestTextInput(String label, Callback<String> callback)
которая выдает виртуальную клавиатуру с прикрепленным (собственным) текстовым полем и позволяет пользователю вводить одну строку текста, используя все механизмы поддержки ввода текста на платформе. Это позволит им вырезать и вставлять, использовать методы ввода языка и обеспечивать удобство работы с данной платформой.
Если вашей игре требуется более сложный ввод текста (например, интерфейс чата или возможность создавать страницы заметок), вам, вероятно, придется создать отдельный интерфейс для каждой платформы, которую вы хотите поддерживать, используя встроенные виджеты многострочного редактирования текста, а затем "подключите" их в свою игру PlayN. Это будет сложнее, чем можно описать в простом ответе SO, поэтому вам придется провести некоторое исследование и узнать, как PlayN управляет отображением на каждом из бэкэндов, которые вы хотите поддерживать.