如何在 nativescript 中制作点击阻塞覆盖?

How to make a tap-blocking overlay in nativescript?

我正在创建一个自定义对话框弹出窗口,覆盖很好,只是我的点击会穿过它。有没有办法让布局点击阻塞?就像按钮一样。无法真正聆听所有手势并手动控制它们,这意味着我将不得不在所有其他采用点击方式的布局上阻止它们。不想使用自定义对话框功能,因为 TIP: By design on iPhone, a modal page appears only in full screen 并且我想尽量减少 android 和 ios 之间的差异。

示例代码:

    <AbsoluteLayout>

        <StackLayout class="content-wrapper">
            <router-outlet></router-outlet>
        </StackLayout>

        <StackLayout class="custom-dialog">
            <Label text="Loading..." textWrap="true"></Label>
        </StackLayout>

    </AbsoluteLayout>

刚刚找到从我的角度来看这个任务的最佳解决方案。

只需要为覆盖布局实现虚拟触摸处理程序。

接下来将是 NativeScript Core 实现(它可以简单地移植到 NativeScript Angular 和 Vue):

XML

   <GridLayout>

        <StackLayout class="content">
            <Label text="Some content" textWrap="true"></Label>
        </StackLayout>

        <StackLayout class="overlay" touch="onOverlayDummyTouch">
            <Label text="Loading..." textWrap="true"></Label>
        </StackLayout>

    </GridLayout>

TypeScript

export function onOverlayDummyTouch(args: TouchGestureEventData) {
}