在输入字段模糊中隐藏Nativescript中的Android键盘

Sta*_*s_S 0 javascript android nativescript

我有一个注册表单,其中包含几个TextFields和其他输入.当用户点击其中一个字段时,Android软键盘将始终按预期显示.如果我在外面拍打虽然键盘没有隐藏.有没有办法捕获此事件,以便当用户点击任何输入之外时我可以隐藏键盘?

看起来如下所示允许我隐藏键盘

var pageContainer = page.getViewById('registration-container');
if(pageContainer.android) {
    pageContainer.android.clearFocus();
}
Run Code Online (Sandbox Code Playgroud)

但我不确定如何捕捉模糊输入的每个点击事件.我甚至不确定Android是否可行.

Dea*_* Le 5

您可以将点击侦听器放到父视图中,这样当您单击它(文本字段外的任何位置)时,它将清除显示键盘的文本字段的焦点.你正在做的是清除容器的焦点,而它应该是文本字段:

在XML中:

<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>
Run Code Online (Sandbox Code Playgroud)

page.js:

function clearTextfieldFocus(args) {
    var layout = args.object;
    var myTextfield = layout.getViewById("myTextfield");
    myTextfield.android.clearFocus();
}
exports.clearTextfieldFocus = clearTextfieldFocus;
Run Code Online (Sandbox Code Playgroud)

P/s:文本字段上的tap监听器将覆盖父监听器,因此单击textfield仍然会聚焦并显示键盘