2016-10-09 23 views
0

複数のTextFieldやその他の入力を含む登録フォームがあります。ユーザーがいずれかのフィールドをタップすると、Androidソフトキーボードは常に期待どおりに表示されます。キーボードが隠れることはありませんが、私はフィールドの外をタップします。このイベントをキャプチャして、ユーザが入力の外にタップするとキーボードが隠れるようにする方法はありますか?それは、次の操作を行うようになります入力フィールドのNativescriptでAndroidキーボードを非表示にする

は私がキーボード

var pageContainer = page.getViewById('registration-container'); 
if(pageContainer.android) { 
    pageContainer.android.clearFocus(); 
} 

を非表示にすることができます。しかし、私は、フォームの入力をぼかし、すべてのタップイベントをキャプチャする方法がわかりませんよ。 Androidでこれが可能かどうかはわかりません。

答えて

5

オンタップリスナーを親ビューに置くことができるので、テキストフィールドの外側の任意の場所をクリックすると、キーボードを表示しているテキストフィールドのフォーカスがクリアされます。あなたがやっている方法は、それが正確にテキストフィールドである必要がありながら、コンテナのフォーカスをクリアすることです:XMLで

page.js

<Page xmlns="http://schemas.nativescript.org/tns.xsd" navigatingTo="onNavigatingTo"> 
    <StackLayout tap="clearTextfieldFocus"> 
     <Label text="Tap the button" class="title"/> 
     <Label text="{{ message }}" class="message" textWrap="true"/> 
     <TextField id="myTextfield" hint="Type here..."/> 
    </StackLayout> 
</Page> 

function clearTextfieldFocus(args) { 
    var layout = args.object; 
    var myTextfield = layout.getViewById("myTextfield"); 
    myTextfield.android.clearFocus(); 
} 
exports.clearTextfieldFocus = clearTextfieldFocus; 

P/S:テキストフィールドのタップリスナーが親リスナーをオーバーライドするので、テキストフィールドをクリックしてもフォーカスとキーボードが表示されます

+0

あなたのPSは、私がこれについて考えているときにわからなかったものです。私はこれを撃つだろう。ありがとう –

+0

レイアウトで各テキストフィールドに明確なフォーカスを追加する必要がありますか? –

+0

私は恐れているので@@ –

関連する問題