在Android的Lua中移动键盘上的文本字段位置

在Android的Lua中移动键盘上的文本字段位置,android,lua,coronasdk,Android,Lua,Coronasdk,我正在使用SDK“Corona”在Lua中开发Android应用程序 我想知道你们是否能帮我解决我遇到的以下问题。我正在设计一个应用程序,其中文本字段位于屏幕底部,但我希望文本字段在触摸后可以改变位置,以便键盘在弹出时不会重叠 因此,我创建了一个侦听器来执行代码,当触摸其中一个字段时,该代码会更改两个字段的Y位置,但由于某些奇怪的原因,该代码不起作用。但是,如果我将代码放在按钮事件侦听器中,它似乎可以正常工作。请参阅我的代码: ----------------email textbox ----

我正在使用SDK“Corona”在Lua中开发Android应用程序

我想知道你们是否能帮我解决我遇到的以下问题。我正在设计一个应用程序,其中文本字段位于屏幕底部,但我希望文本字段在触摸后可以改变位置,以便键盘在弹出时不会重叠

因此,我创建了一个侦听器来执行代码,当触摸其中一个字段时,该代码会更改两个字段的Y位置,但由于某些奇怪的原因,该代码不起作用。但是,如果我将代码放在按钮事件侦听器中,它似乎可以正常工作。请参阅我的代码:

----------------email textbox -------------

local textField = native.newTextField( display.contentCenterX, display.contentCenterY + 60, 200, 40 )
textField.placeholder = "Email"
textField.isEditable = true

 --function to handle events
local function touchListener( event )

      textField.y = display.contentCenterY - 100
      textField2.y = display.contentCenterY - 50

end


textField:addEventListener( "touch", touchListener )

我提前感谢您的帮助。

如果我说的没错,因为文本字段是本机对象(而不是显示对象),所以它们不处理“触摸”事件。 因此,您需要使用“userInput”事件来触发textField的移动

下面是我过去在本例中使用的侦听器示例(没有代码):

然后将其添加到文本字段,如下所示:

oTextField:addEventListener( 'userInput', fctFieldListener )

另外,我强烈建议您将您的native.newTextField放在您将要移动的特定显示组中,而不是移动textField本身,这会使事情变得更简单。

也许您应该向我们展示不起作用的代码,而不是起作用的代码?@Frozire抱歉,按要求修改。侦听器
userInput
仅由文本输入触发,您知道这一点吗?因此,在用户将文本输入文本字段之前,文本字段不会移动。@Frozire我使用了textField:addEventListener(“触摸”,touchListener),但它仍然不起作用。您确定在addEventListener的参数中定义的函数与您定义的函数之间存在一致性吗?如果是,我将需要更多的代码来解决这个问题-也许上传你的代码到某个地方,让我可以查看完整的代码将是有益的。
oTextField:addEventListener( 'userInput', fctFieldListener )