2016-08-12 92 views
1

在我的nativescript应用程序中,我注意到有时点击不会以正确的方式触发。我必须点击几次触发事件。这发生在android和ios上。Nativerscript点击区域

如何增加水龙头热区?还有什么可能导致这种情况发生?

谢谢。

P.S.我尝试增加我捕捉的点击事件的元素的填充,但这似乎没有帮助。

回答

1

这里有几个因素。

首先,当您在NativeScript中截取页面级事件时,它似乎会停止其他小部件发出的事件。例如,如果您点击一个文本字段,但具有一个页面级侦听器,轻击事件,那么TextField上的点击将被页面级侦听器拦截。第二,双击似乎利用事件中的时间问题,允许轻敲事件冒泡到下一个监听小部件。

最后,当您尝试点击的元素上有填充时,轻击不会在填充区域上注册。它会出现,你只能点击小部件的中间(填充区域内)。在我的情况下,我填充的TextField必须直接在垂直中心轻敲(并且填充5px)。

要测试它,请尝试从元素中删除填充并查看是否再次正常工作。

我可以通过以下操作来创建软件键盘非常流畅/自然的体验:在StackLayout

  1. 裹的文本字段,并把填充在StackLayout而不是部件
  2. 加页面级侦听器只在轻击文本字段时才关闭软件键盘,并且一旦该侦听器被触发就将其删除。

例如: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); 
      }); 
    }); 
3

我经常增加具有轻击事件的视图的heightwidth。你可以试试看。

+0

感谢Dihn,让我试试看。 – dpdragnev

+0

如果这对你有用,请一定要报告,我一直有类似的问题 –

+0

尺寸的增加并没有帮助。正如我在更新中提到的那样。我甚至尝试增加视图的填充,没有区别。 – dpdragnev

1

总结一些布局内的项目,以增加点击区域

<StackLayout (tap)="select(param)"> 
 
     <Label text="{{description}}" textWrap="true" marginTop="40px" marginBottom="40px"> 
 
     </Label> 
 
</StackLayout>

+0

这不是一个好主意,有几个原因 - 首先它会让应用程序更慢。 NS足够慢。如果你有一个StackLayout的标签 - 将每个Label放在它自己的StackLayout中不是一个好主意。我使用的是RadSidedrawer,它错过了很多次 - 这个问题应该在NS级别解决 - 也许会在命中区域添加填充。 – dashman

+0

那会很棒。你想分享一个相同的例子/指针吗? – Rakesh