2016-08-12 89 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