HarmonyOS bindMenu的背景问题

咨询描述:

当设置bindMenu时,给CustomBuilder设置背景色,界面显示后面还是有白色的背景色。

demo代码:

@Entry 
@Component 
struct MenuExample { 
 @State listData: number[] = [0, 0, 0] 
 
 @Builder MenuBuilder() { 
  Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { 
   ForEach(this.listData, (item:number, index) => { 
    Column() { 
     Row() { 
      Image($r("app.media.icon")).width(20).height(20).margin({ right: 5 }) 
      Text(`${index as number + 1}`).fontSize(20) 
     } 
     .width('100%') 
     .height(30) 
     .justifyContent(FlexAlign.Center) 
     .align(Alignment.Center) 
     .onClick(() => { 
      console.info(`Menu${index as number + 1} Clicked!`) 
     }) 
 
     if (index != this.listData.length - 1) { 
      Divider().height(10).width('80%').color('#ccc') 
     } 
    }.padding(5).height(40) 
   }) 
  }.width(100) 
  .backgroundColor(Color.Black) 
 } 
 
 build() { 
  Column() { 
   Text('click for menu') 
    .fontSize(20) 
    .margin({ top: 20 }) 
    .bindMenu(this.MenuBuilder) 
  } 
  .height('100%') 
  .width('100%') 
  .backgroundColor('#f0f0f0') 
 } 
}

文档链接:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-universal-attributes-menu-V5#ZH-CN_TOPIC_0000001847049780__bindmenu11

HarmonyOS
2024-09-02 09:40:24
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

可以使用bindContextMenu来实现。

示例代码如下:

@Entry 
@Component 
struct MenuExample { 
 @State listData: number[] = [0, 0, 0] 
 @State menuIsShow:boolean = false; 
 @Builder MenuBuilder() { 
  Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { 
   ForEach(this.listData, (item:number, index:number) => { 
    Column() { 
     Row() { 
      Image($r("app.media.startIcon")).width(20).height(20).margin({ right: 5 }) 
      Text(`${index as number + 1}`).fontSize(20) 
     } 
     .width('100%') 
     .height(30) 
     .justifyContent(FlexAlign.Center) 
     .align(Alignment.Center) 
     .onClick(() => { 
      console.info(`Menu${index as number + 1} Clicked!`) 
     }) 
 
     if (index != this.listData.length - 1) { 
      Divider().height(10).width('80%').color('#ccc') 
     } 
    }.padding(5).height(40) 
   }) 
  } 
  .width(100) 
  // .backgroundColor(Color.Black) 
 } 
 
 build() { 
  Column() { 
   Text('click for menu') 
    .onClick(()=>{ 
     this.menuIsShow = !this.menuIsShow; 
    }) 
    .fontSize(20) 
    .margin({ top: 20 }) 
     // .bindMenu(this.MenuBuilder) 
    .bindContextMenu(this.menuIsShow,this.MenuBuilder(),{ 
     backgroundColor:Color.Black, 
     backgroundBlurStyle:BlurStyle.NONE 
    }) 
  } 
  .height('100%') 
  .width('100%') 
  .backgroundColor('#f0f0f0') 
 } 
}
分享
微博
QQ
微信
回复
2024-09-02 16:51:06
相关问题
HarmonyOS 背景水印问题
248浏览 • 1回复 待解决
背景属性问题有哪些?
349浏览 • 1回复 待解决
HarmonyOS Tabs组件bar背景设置问题
255浏览 • 1回复 待解决
鸿蒙JS服务卡片背景模糊无效问题
5647浏览 • 1回复 待解决
HarmonyOS 自定义Dialog背景色透明问题
769浏览 • 1回复 待解决
HarmonyOS 组件/容器设置背景样式
224浏览 • 1回复 待解决
HarmonyOS 设置冷启动背景
189浏览 • 1回复 待解决
如何设置窗口背景
1815浏览 • 1回复 待解决
如何设置WebView背景色?
370浏览 • 1回复 待解决
HarmonyOS Navigation标题居中,背景设置
608浏览 • 1回复 待解决
背景色透明度问题解决方案
428浏览 • 1回复 待解决
能把Shape配置成Text背景吗?
794浏览 • 1回复 待解决
JS 卡片背景颜色怎么修改呢?
6631浏览 • 3回复 待解决