我只是想知道在PlayN中从用户接收文本输入的最佳解决方案是什么。 我没有找到任何可以用来实现这一目标的东西,我认为最好的解决方案是渲染类似HTML输入的内容来编写文本,但它不会那么简单,因为我们需要能够在示例中使用来自android(在android平台上)的虚拟键盘和HTML后端的常规键盘。即便如此,我认为在游戏中唤起Android键盘将非常困难(或不可能)......
我正在考虑在三重播放UI库中创建一个小部件(因为我会使用它),但最终会在屏幕上呈现用户输入的虚拟键盘......来自a-z等的按钮...
我想知道有没有更好的解决方案,或者我需要实现像上面写的那样(比如三重播放小部件)?
答案 0 :(得分:2)
已经有一个Tripleplay小部件用于接收名为Field的文本输入。
然而,它非常原始,尚未在移动平台上运行(它可以在具有硬件键盘的Android设备上运行)。我们需要在PlayN中提供一个API来显示虚拟键盘,但在此之前它无法触发虚拟键盘的显示。
但是,我不建议将此用于任何实质文本输入。它不会(并且永远不会)支持剪切和粘贴,或语言输入方法,或者用户期望文本输入的其他极其复杂的功能。
我想向PlayN添加一个API,如:
Keyboard.requestTextInput(String label, Callback<String> callback)
会弹出虚拟键盘,附带(本机)文本框,并允许用户使用平台本机文本输入支持的所有机制输入单行文本。这将允许他们剪切和粘贴,并使用语言输入方法,并提供他们在相关平台上感到舒适的体验。
如果您的游戏需要更复杂的文本输入(如聊天界面,或者能够记录笔记页),您可能需要使用原生多行文本编辑为您希望支持的每个平台创建单独的界面小部件,然后将它们“连接”到您的PlayN游戏中。这将比简单的SO答案中描述的更复杂,因此您必须进行一些研究并了解PlayN如何管理您希望支持的每个后端的显示。