HarmonyOS 鸿蒙Next如何自由设置状态栏颜色并隐藏底部导航条 有办法吗 能给个demo吗
HarmonyOS 鸿蒙Next如何自由设置状态栏颜色并隐藏底部导航条 有办法吗 能给个demo吗
想要能够自由的设置状态栏颜色,但是又要隐藏掉底部导航条,请问有什么办法?可以给个demo看看吗
3 回复
隐藏掉底部导航条:
参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5
设置状态栏颜色:
参考demo
async setSystemBar() {
// 获取当前应用窗口
let windowClass: window.Window = await window.getLastWindow(getContext(this))
// 前提:设置窗口为全屏窗口
windowClass.setWindowLayoutFullScreen(true);
//设置窗口全屏模式时导航栏、状态栏、底部导航条的显示和隐藏,使用Promise异步回调。
try {
let promise = windowClass.setSpecificSystemBarEnabled('navigationIndicator', false);
promise.then(() => {
console.info('Succeeded in setting the system bar to be invisible.');
}).catch((err: BusinessError) => {
console.error('Failed to set the system bar to be invisible. Cause:' + JSON.stringify(err));
});
} catch (exception) {
console.error('Failed to set the system bar to be invisible. Cause:' + JSON.stringify(exception));
}
// 设置窗口全屏模式时窗口内导航栏、状态栏的属性,使用callback异步回调。
await windowClass.setWindowSystemBarProperties({
// 颜色属性为ARGB,将蒙尘设置为0%使其透明
// 导航栏颜色
navigationBarColor: '#fd121de5',
// 状态栏颜色
statusBarColor: '#ff0ad9c2',
// 导航栏文字颜色
navigationBarContentColor: '#fde20606',
// 状态栏文字颜色
statusBarContentColor: '#fff1e50a'
})
}
aboutToAppear() {
this.setSystemBar()
}
~~~
更多关于HarmonyOS 鸿蒙Next如何自由设置状态栏颜色并隐藏底部导航条 有办法吗 能给个demo吗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
+1
HarmonyOS 鸿蒙Next支持自由设置状态栏颜色并隐藏底部导航条,以下是实现方法及相关Demo代码:
设置状态栏颜色
可以使用window.setWindowSystemBarProperties
方法动态设置状态栏颜色。该方法允许配置一个对象,包括statusBarColor
(状态栏背景色)和statusBarContentColor
(状态栏文字颜色)等属性。
Demo代码:
import { window } from '@kit.arkui';
function changeStatusBarColor() {
window.getLastWindow(getContext(), (err, win) => {
if (err.code) {
console.error("Error getting window: " + JSON.stringify(err.code));
return;
}
win.setWindowSystemBarProperties({
statusBarColor: '#ff0000', // 红色背景
statusBarContentColor: '#ffffff' // 白色文字
});
});
}
隐藏底部导航条
使用setWindowSystemBarEnable
接口可设置导航栏为隐藏状态。建议在ability的onWindowStageCreate
生命周期中设置,以确保窗口信息已正确获取。
Demo代码:
import window from '@ohos.window';
import common from '@ohos.app.ability.common';
@Entry
@Component
struct Type3 {
@State message: string = 'Hello World'
context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext
async setSystemBar() {
let windowClass = await window.getLastWindow(this.context);
await windowClass.setWindowSystemBarEnable([]); // 隐藏导航栏
}
aboutToAppear() {
this.setSystemBar();
}
// ...build方法内容
}
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html