Nativerscript水龙头区域

时间:2016-08-12 17:11:43

标签: nativescript

在我的nativescript应用程序中,我注意到有时水龙头不能正确触发。我必须多次点击才能触发事件。这发生在android和ios上。

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

谢谢。

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

3 个答案:

答案 0 :(得分:3)

我经常会增加包含点击事件的视图的heightwidth。你可以尝试一下。

答案 1 :(得分:1)

这里有几个因素在起作用。

首先,当您在NativeScript中拦截页面级事件时,它似乎会阻止来自其他窗口小部件的事件触发。例如,如果您点击文本字段但具有点击事件的页面级侦听器,则页面级侦听器将拦截TextField上的点击。

其次,Double-tap似乎利用了事件中的计时问题,允许点击事件冒泡到下一个侦听小部件。

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

要测试它,请尝试从元素中删除填充,然后再次查看点击是否正常。

通过执行以下操作,我能够通过软件键盘创建非常流畅/自然的体验:

  1. 将TextField包装在StackLayout中并将填充放在StackLayout而不是小部件
  2. 添加仅在轻触文本字段时解除软件键盘的页面级侦听器,并在触发侦听器后将其删除。
  3. ex: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);
                });
        });
    

答案 2 :(得分:1)

将项目包裹在某些布局中以增加可点击区域

star_xp %>% sprintf("review-rating-header seat_comfort") %>%
  html_node(x = tbl, xpath = .) %>% html_text
#  [1] NA  "4" "5" "3" "3" "1" "4" "4" "3" "3" "3"