我有以下代码:
<TextField id="txtPhone" top="20" left="15" right="40" returnKeyType="Ti.UI.RETURNKEY_GO" keyboardType="Ti.UI.KEYBOARD_TYPE_PHONE_PAD">
<KeyboardToolbar platform="ios">
<Toolbar>
<Items>
<Button systemButton="Titanium.UI.iOS.SystemButton.FLEXIBLE_SPACE"/>
<Button title="Save" systemButton="Titanium.UI.iOS.SystemButton.SAVE"/>
</Items>
</Toolbar>
</KeyboardToolbar>
</TextField>
我遇到的区域问题是ios没有keyboardType="Ti.UI.KEYBOARD_TYPE_PHONE_PAD"
的“完成”按钮。因此,我从其他StackOverflow答案中找到的解决方案与上述类似。
问题是键盘工具栏不会与键盘同步。
我找到了一个演示此问题的视频。 https://www.youtube.com/watch?v=Cd95W1LvNXk&feature=youtu.be。但是,视频速度非常快,所以我建议以0.25的速度观看。
如您所见,关闭键盘时,数字键盘比键盘工具栏更快地到达屏幕底部。
同样,打开键盘时,键盘工具栏的显示速度比数字键盘快。
如何解决此问题?
答案 0 :(得分:1)
这是在Titanium中打开/关闭键盘工具栏的正常行为。
我认为工具栏的动画效果与键盘相同,但不同之处在于曲线行为 Ti.UI.ANIMATION_CURVE_EASE_OUT
使用上述事实,如果您确实需要与键盘相同的时间,则可以创建手动视图并使用相同的曲线 Ti.UI.ANIMATION_CURVE_EASE_OUT 为其设置动画。
这是目前唯一的解决方案,但请记住,这样做会导致您对scrollview的滚动位置进行额外的计算,因为当您为手动视图设置动画时,它可以覆盖您的文本字段iOS本身向上移动与键盘高度相同的数量,在某些情况下,可能无法向上滚动最后一个文本字段。
因此,您需要滚动滚动视图以调整文本字段位置(这需要做更多的任务,更好地注意延迟问题并保持快乐:))