在aboutToAppear中隐藏状态栏无效? HarmonyOS 鸿蒙Next
在aboutToAppear中隐藏状态栏无效? HarmonyOS 鸿蒙Next
在主页面Index的aboutToAppear中设置隐藏状态栏的代码就有效!
如果从Index通过router跳转到一个新entry页面,再次在aboutToAppear中设置隐藏状态栏的代码就无效了?
但是在这个新页面的onPageShow中设置隐藏状态栏的代码就有效了?
这是什么原因,有大佬能解释一下吗?
在EntryAbility中保存了window.WindowStage

代码如下(把下面代码的aboutToAppear代码打开,把onPageShow的代码隐藏,
注意:不要在loadContent中的主页面设置这段代码就可以复现问题)
@Entry
@Component
struct BarTextColor {
onPageShow(): void {
const windowStage: window.WindowStage = AppStorage.get("windowStage") as window.WindowStage;
const mainWindow: window.Window = windowStage.getMainWindowSync(); //获取主窗口的方式
mainWindow.setSpecificSystemBarEnabled('status', false)
.then(() => {
console.info('Succeeded in setting the status bar to be invisible.');
})
.catch((err: BusinessError) => {
console.error(`Failed to set the status bar to be invisible. Code is ${err.code}, message is ${err.message}`);
});
}
build() {
Column({ space: 10 }) {
Text('状态栏修改demo').fontSize(25).fontColor(0x3399FF)
}.width('100%').height('100%').justifyContent(FlexAlign.Center).alignItems(HorizontalAlign.Center)
}
}
更多关于在aboutToAppear中隐藏状态栏无效? HarmonyOS 鸿蒙Next的实战教程也可以访问 https://www.itying.com/category-93-b0.html
我这边没法复现问题呢,我这边是loadContent到index页面,然后index页面中aboutToAppear和onPageShow都可以隐藏状态栏,然后我设置index页面不执行隐藏状态栏,index页面通过
router.pushUrl({
url: 'pages/Test19',
params: {}
})
跳转到第二个页面,第二个页面里无论是在aboutToAppear或者onPageShow中都还是可以隐藏状态栏的
更多关于在aboutToAppear中隐藏状态栏无效? HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
是不是用真机测试的?
用模拟器试试呢,可能模拟器有问题,也可能和ide版本有关,我的是5.0.7.210,
在HarmonyOS中,aboutToAppear
生命周期函数用于页面即将显示时执行的操作。如果你在aboutToAppear
中尝试隐藏状态栏但无效,可能是因为状态栏的隐藏操作需要在页面生命周期更早的阶段执行。你可以尝试在onPageShow
或onPageHide
等生命周期函数中进行状态栏的隐藏操作。此外,确保你使用的是正确的API,如window.setWindowSystemBarEnable
来控制状态栏的显示与隐藏。检查代码逻辑和生命周期函数的调用顺序,确保在页面显示前状态栏已被正确隐藏。