HarmonyOS 横向的菜单怎么实现?

Menu是垂直菜单没有发现横向的菜单如何实现?

阅读 601
1 个回答

当前menu组件只支持垂直排列,规格如此。可以使用popup来替代实现,参考示例如下:

import { promptAction } from '@kit.ArkUI';

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  @State handlePopup: boolean = false
  @State customPopup: boolean = false
  // popup构造器定义弹框内容
  @Builder
  popupBuilder() {
    Row({ space: 2 }) {
      Text('删除')
        .fontColor(Color.White)
        .onClick(() => {
          promptAction.showToast({ message: `执行删除操作` })
        })
      Divider().vertical(true).width(1).color(Color.White)
      Text('转发').fontColor(Color.White)
      Divider().vertical(true).width(1).color(Color.White)
      Text('收藏').fontColor(Color.White)
      Divider().vertical(true).width(1).color(Color.White)
      Text('引用').fontColor(Color.White)
    }.height(50).padding(5).backgroundColor(Color.Black)
  }

  build() {
    Column() {
      Button('CustomPopupOptions')
        .onClick(() => {
          this.customPopup = !this.customPopup
        })
        .bindPopup(this.customPopup, {
          builder: this.popupBuilder,
          placement: Placement.Top,
          mask: { color: '#33000000' },
          popupColor: Color.Black,
          enableArrow: true,
          showInSubWindow: false,
          backgroundBlurStyle: BlurStyle.NONE,
          onStateChange: (e) => {
            if (!e.isVisible) {
              this.customPopup = false
            }
          }
        })
        .position({ x: 80, y: 300 })
    }.width('100%').padding({ top: 5 })
  }
}