HarmonyOS鸿蒙Next中状态栏上的电池条颜色与动态隐藏状态栏实现
HarmonyOS鸿蒙Next中状态栏上的电池条颜色与动态隐藏状态栏实现
如何使用代码修改状态栏上的电池、时间颜色,如果不能自定义颜色,能手动改白色和黑色也OK
如何动态隐藏状态栏
我的导航栏是深色,但是电池的颜色也是黑色,看不清,想修改状态栏电池的颜色。
想动态隐藏,而不是全局隐藏或显示,场景就是竖屏时显示状态栏,但是 横屏时我需要看大图,隐藏掉状态栏,已经知晓有一个函数可以使用,但是属于全局设置,有没有组件内调用的函数
import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { window } from '@kit.ArkUI';
import { BusinessError } from '@kit.BasicServicesKit';
export default class EntryAbility extends UIAbility {
onWindowStageCreate(windowStage: window.Window): void {
windowStage.loadContent('pages/Index', (err, data) => {
if (err.code) {
return;
}
let windowClass: window.Window = windowStage.getMainWindowSync();
// 获取应用主窗口 // 1. 设置窗口全屏
// 2. 设置状态栏和导航条隐藏
windowClass.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}`);
});
});
}
}
更多关于HarmonyOS鸿蒙Next中状态栏上的电池条颜色与动态隐藏状态栏实现的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
可以用堆栈集合等方式对颜色的值进行取值,在需要改变的页面直接调用setWindowSystemBarProperties
方法,参考文档地址如下:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5。
如果想在组件内隐藏可参照如下(您这边监听横竖屏是否隐藏即可):
import window from '@ohos.window';
import common from '@ohos.app.ability.common';
@Entry
@Component
struct Type3 {
@State message: string = 'Hello World'
private windowClass: window.Window | null = null
context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext
async setSystemBar() {
this.windowClass = await window.getLastWindow(getContext(this))
await this.windowClass.setSpecificSystemBarEnabled('status', false)
// await windowClass.setWindowSystemBarEnable([])
}
aboutToAppear() {
this.setSystemBar()
}
async aboutToDisappear() {
this.windowClass = await window.getLastWindow(getContext(this))
await this.windowClass.setSpecificSystemBarEnabled('status', true)
}
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
.width('100%')
}
.height('100%')
}
}
更多关于HarmonyOS鸿蒙Next中状态栏上的电池条颜色与动态隐藏状态栏实现的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
项目名称
- 状态:已完成
- 类型:Web应用
- 描述:这是一个用于管理日常任务的应用程序。
成员
- 张三
- 李四
- 王五
技术栈
- HTML
- CSS
- JavaScript
在HarmonyOS(鸿蒙Next)中,状态栏上的电池条颜色可以通过Window
类的setStatusBarColor
方法进行设置。该方法允许开发者指定状态栏的背景颜色,从而影响电池条的外观。例如,使用Window.setStatusBarColor(Color.RED)
可以将状态栏背景设置为红色,间接改变电池条的颜色。
动态隐藏状态栏可以通过Window
类的setFlags
方法实现。使用WindowManager.LayoutParams.FLAG_FULLSCREEN
标志可以将状态栏隐藏。例如,getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
会隐藏状态栏。要恢复显示状态栏,可以清除该标志,使用getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
。
这些操作通常在Activity
的生命周期方法(如onCreate
或onResume
)中执行,以确保状态栏的显示或隐藏行为符合应用的需求。
在HarmonyOS鸿蒙Next中,状态栏上的电池条颜色可以通过系统主题或自定义样式进行设置。开发者可以在config.json
中配置theme
属性来定义状态栏和电池条的颜色。同时,动态隐藏状态栏可以通过调用Window
类的setStatusBarVisibility
方法实现,传入WindowManager.LayoutParams.FLAG_FULLSCREEN
参数即可隐藏状态栏。这些操作需在Ability
或Page
的生命周期方法中执行,以确保界面更新。