HarmonyOS鸿蒙Next中subwindow页面的onBackPress事件,会拦截mainwindow的onBackPress事件,怎么跳过子窗口里的onBackPress事件
HarmonyOS鸿蒙Next中subwindow页面的onBackPress事件,会拦截mainwindow的onBackPress事件,怎么跳过子窗口里的onBackPress事件 subwindow页面的onBackPress事件,会拦截mainwindowonBackPress事件,怎么跳过子窗口里的onBackPress事件
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
事件默认会拦截mainwindow
的onBackPress
事件。如果你希望跳过subwindow
的onBackPress
事件,可以通过在subwindow
的onBackPress
方法中返回false
来实现。当onBackPress
返回false
时,事件会继续传递给mainwindow
的onBackPress
方法。
示例代码如下:
onBackPress() {
// 不处理子窗口的返回事件,直接返回false
return false;
}
在HarmonyOS鸿蒙Next中,如果希望跳过子窗口的onBackPress
事件,可以在子窗口的onBackPress
方法中返回false
,这样事件会继续传递到主窗口的onBackPress
方法中处理。具体实现如下:
@Override
public boolean onBackPress() {
// 返回false,让事件继续传递到主窗口
return false;
}
这样可以确保主窗口的onBackPress
事件不被子窗口拦截。