HarmonyOS鸿蒙Next中subwindow页面的onBackPress事件,会拦截mainwindow的onBackPress事件,怎么跳过子窗口里的onBackPress事件

HarmonyOS鸿蒙Next中subwindow页面的onBackPress事件,会拦截mainwindow的onBackPress事件,怎么跳过子窗口里的onBackPress事件 subwindow页面的onBackPress事件,会拦截mainwindowonBackPress事件,怎么跳过子窗口里的onBackPress事件

4 回复
let floatWindow: window.Window | undefined = undefined;
let config: window.Configuration = {
name: "floatWindow",
windowType: window.WindowType.TYPE_FLOAT,
ctx: getContext(this)
};
window.createWindow(config, (err: BusinessError, data) => {
const errCode: number = err.code;
if (errCode) {
console.error('Demo Failed to create the window. Cause: ' + err.code + ' ' + err.message);
return;
}
floatWindow = data;
floatWindow.resize(500, 500);
floatWindow.moveWindowTo(800, 200)
// 这里设置创建的子窗口不可聚焦,侧滑触发的就是主窗口的onbackPress事件
floatWindow.setWindowFocusable(false)
floatWindow.setUIContent("pages/Index")
floatWindow.showWindow((err: BusinessError) => {
const errCode: number = err.code;
if (errCode) {
console.error('Demo Failed to show the window. Cause: ' + JSON.stringify(err));
return;
}
console.info('Demo Succeeded in showing the window.');
});
})

更多关于HarmonyOS鸿蒙Next中subwindow页面的onBackPress事件,会拦截mainwindow的onBackPress事件,怎么跳过子窗口里的onBackPress事件的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


厉害,解决了我的问题,

在HarmonyOS鸿蒙Next中,subwindow页面的onBackPress事件默认会拦截mainwindowonBackPress事件。如果你希望跳过subwindowonBackPress事件,可以通过在subwindowonBackPress方法中返回false来实现。当onBackPress返回false时,事件会继续传递给mainwindowonBackPress方法。

示例代码如下:

onBackPress() {
  // 不处理子窗口的返回事件,直接返回false
  return false;
}

在HarmonyOS鸿蒙Next中,如果希望跳过子窗口的onBackPress事件,可以在子窗口的onBackPress方法中返回false,这样事件会继续传递到主窗口的onBackPress方法中处理。具体实现如下:

@Override
public boolean onBackPress() {
    // 返回false,让事件继续传递到主窗口
    return false;
}

这样可以确保主窗口的onBackPress事件不被子窗口拦截。

回到顶部