HarmonyOS 鸿蒙Next状态栏通知遮罩效果受影响正常吗 及 界面背景差异大时router.replaceUrl跳转闪屏替代方案
HarmonyOS 鸿蒙Next状态栏通知遮罩效果受影响正常吗 及 界面背景差异大时router.replaceUrl跳转闪屏替代方案
2 回复
蒙层显示时改变tab栏的背景以及透明度,请参考如下代码实现此效果
[@Entry](/user/Entry)
[@Component](/user/Component)
struct Index {
[@State](/user/State) visible: boolean = false
[@Builder](/user/Builder) tabBuilder() {
Column(){
Text("首页")
}.width('100%')
.height('100%')
.justifyContent(FlexAlign.Center)
.backgroundColor(this.visible?Color.Black:Color.White)
.opacity(this.visible?0.4:1)
}
build() {
NavDestination() {
Tabs({barPosition: BarPosition.End}) {
TabContent() {
Row() {
Column() {
Button("选择组织").onClick(() => {
this.visible = !this.visible;
})
Stack({ alignContent: Alignment.Center }) {
Column(){
Button("abcdd").onClick(() => {
this.visible = !this.visible;
})
}
.height('100%')
.width('100%')
CXWDropdownListView({visible: this.visible}).visibility(this.visible ? Visibility.Visible : Visibility.Hidden)
}
}
.height('100%')
.width('100%')
.justifyContent(FlexAlign.Start)
}.height('100%')
}.tabBar(this.tabBuilder())
}
}
}
}
export class CXWEnterpriseInfo {
identifier: string;
name: string;
constructor(identifier: string, name: string) {
this.identifier = identifier;
this.name = name;
}
}
@Component
struct CXWDropdownListView {
@Link visible: boolean;
private showMaxCount = 6;
private itemHeight = 60;
private dataSource = [new CXWEnterpriseInfo("1", "组织1"), new CXWEnterpriseInfo("2", "组织2"),
new CXWEnterpriseInfo("1", "组织1"), new CXWEnterpriseInfo("2", "组织2"),]
build() {
Column() {
List() {
ForEach(this.dataSource, (info: CXWEnterpriseInfo, index: number) => {
ListItem() {
CXWDropdownEnterpriseItem({name: info.name, selected: index == 1})
.onClick(() => {
this.hiddenDropdownListView();
})
}
})
}
.height(this.dataSource.length > this.showMaxCount ? this.showMaxCount * this.itemHeight : this.dataSource.length * this.itemHeight)
.backgroundColor(Color.White)
Blank()
.width('100%')
.flexGrow(1)
.backgroundColor(Color.Black)
.opacity(0.4)
.onClick(() =>{
this.hiddenDropdownListView();
})
}
.width('100%')
.height('100%')
}
hiddenDropdownListView() {
this.visible = !this.visible;
}
}
@Component
struct CXWDropdownEnterpriseItem {
@State selected: boolean = false;
name: string = "";
build() {
Row() {
Image('')
.size({width: 16, height: 16})
.margin({left: 16})
.backgroundColor(Color.Black)
Text(this.name)
.fontSize(16)
.backgroundColor(Color.Gray)
.padding({left: 8})
.flexGrow(1)
Image('')
.size({width: 16, height: 16})
.margin({right: 16})
.backgroundColor(Color.Orange)
.visibility(this.selected ? Visibility.Visible : Visibility.Hidden)
}
.justifyContent(FlexAlign.SpaceBetween)
.width('100%')
.height('60vp')
}
}
针对您提出的HarmonyOS 鸿蒙Next状态栏通知遮罩效果受影响及界面背景差异大时router.replaceUrl跳转闪屏问题,以下是我的专业解答:
-
状态栏通知遮罩效果:
- 在HarmonyOS鸿蒙Next中,状态栏通知遮罩效果可能受到多种因素影响,包括系统更新、应用兼容性等。若该效果受影响,通常不是正常现象,可能需要检查系统更新或应用适配情况。
-
router.replaceUrl跳转闪屏:
- 在界面背景差异大时,使用router.replaceUrl进行页面跳转可能会出现闪屏现象。这通常是由于页面切换时资源加载或渲染造成的。
- 替代方案包括优化页面加载速度、使用过渡动画或遮罩层来减少视觉上的突兀感。同时,确保页面资源得到合理管理和释放,以减少系统负担。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。