Appcelerator / Titanium键盘工具栏与键盘错误不同步

时间:2017-02-01 10:25:46

标签: titanium appcelerator appcelerator-titanium titanium-alloy appcelerator-alloy

我有以下代码:

<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的速度观看。

如您所见,关闭键盘时,数字键盘比键盘工具栏更快地到达屏幕底部。

同样,打开键盘时,键盘工具栏的显示速度比数字键盘快。

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

这是在Titanium中打开/关闭键盘工具栏的正常行为。

我认为工具栏的动画效果与键盘相同,但不同之处在于曲线行为 Ti.UI.ANIMATION_CURVE_EASE_OUT

使用上述事实,如果您确实需要与键盘相同的时间,则可以创建手动视图并使用相同的曲线 Ti.UI.ANIMATION_CURVE_EASE_OUT 为其设置动画。

这是目前唯一的解决方案,但请记住,这样做会导致您对scrollview的滚动位置进行额外的计算,因为当您为手动视图设置动画时,它可以覆盖您的文本字段iOS本身向上移动与键盘高度相同的数量,在某些情况下,可能无法向上滚动最后一个文本字段。

因此,您需要滚动滚动视图以调整文本字段位置(这需要做更多的任务,更好地注意延迟问题并保持快乐:))