【发布时间】:2019-09-14 10:17:43
【问题描述】:
<Page actionBarHidden="true" @loaded="pageLoaded" @unloaded="pageUnloaded">
<DockLayout>
<DockLayout v-show="search">
...
</DockLayout>
<DockLayout class="routeDetails" v-show="!search">
...
</DockLayout>
</DockLayout>
</Page>
pageLoaded: function () {
// We only want to register the event in Android
if (application.android) {
console.log("halllo");
application.android.on(application.AndroidApplication.activityBackPressedEvent, this.backEvent);
}
},
pageUnloaded: function () {
// We only want to un-register the event on Android
if (application.android) {
console.log("done");
application.android.off(application.AndroidApplication.activityBackPressedEvent, this.backEvent);
}
},
backEvent: function (args) {
console.log("hey I pressed");
if (this.search) {
args.cancel = true;
this.search = false;
} else {
args.cancel = false;
}
}
search 是标准的false。
问题
当我在show 视图中search = true 时。我想按回 Android 硬件按钮。它应该被隐藏并显示另一个search = false。但它只有在我连续按下 Android 硬件按钮 2 次后才会这样做。
但是当我在 search = false 的视图上时,它会在我第一次按下 Android 硬件按钮后记录 console.log。
我在this blog post 上找到的代码。 在此引用Github issue
更新
因此,您需要做的是单击屏幕上的按钮之一。 然后使用硬件按钮返回。在此示例中,它将直接执行此操作。但是当您第二次尝试时,您需要按两次硬件按钮才能工作。就我而言,我总是需要按 2 次才能起作用。
【问题讨论】:
标签: nativescript nativescript-vue