在我的nativescript应用中,我注意到有时点击不会正确触发。我必须点击几次才能触发事件。这发生在android和ios上。
如何增加自来水区?还有什么可能导致这种情况发生?
谢谢。
附言我尝试增加要捕获其tap事件的元素的填充,但这似乎无济于事。
最佳答案
这里有一些因素在起作用。
首先,当您在NativeScript中拦截页面级事件时,似乎会阻止其他窗口小部件的事件触发。例如,如果您点击一个文本字段,但是具有一个用于点击事件的页面级侦听器,则TextField上的点击将被页面级侦听器拦截。
其次,双击似乎可以利用事件中的计时问题,使tap事件冒泡到下一个监听小部件。
最后,当您在要点击的元素上添加填充时,点击不会在填充区域上注册。看来您只能在小部件的中间(在填充区域内)点击。在我的情况下,必须在垂直中心直接点击我要填充的TextField(并且填充为5px)。
要对其进行测试,请尝试从元素中删除填充,然后查看攻丝是否再次正常工作。
通过执行以下操作,我能够使用软件键盘创造出非常流畅/自然的体验:
将TextField包裹在StackLayout中,然后在PadLayout而不是小部件上放置填充
添加仅在敲击文本字段时才关闭软件键盘的页面级侦听器,并在触发该侦听器后将其删除。
例如:XML文件
<StackLayout id="loginFieldWrapper" padding="5 5 5 5">
<TextView hint="Enter Login ID" id="loginField" keyboardType="number" returnKeyType="done" returnPress="{{hideKeyboard}}" />
</StackLayout>
支持javascript文件
loginField.on(gestures.GestureTypes.tap, function(args) {
page.on(gestures.GestureTypes.tap, function (args) {
loginField.dismissSoftInput();
page.off(gestures.GestureTypes.tap);
});
});
关于nativescript - native 水龙头区域,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38923245/