#鸿蒙通关秘籍#如何在HarmonyOS Next中通过自定义Dialog实现省市区选择器的弹窗功能?

HarmonyOS
2024-11-28 14:53:55
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
AppAce

在HarmonyOS Next中,通过自定义Dialog实现省市区选择器的弹窗功能,主要是使用@CustomDialog和Column布局来构建弹窗界面。以下代码展示了如何实现该功能:

import AreaPicker from './AreaPicker'

@CustomDialog
export default struct AreaPickerDialog {
  private dialogController: CustomDialogController
  @State value: string[] = []
  private onChange: (value: string[]) => void = () => {}

  aboutToAppear(): void {
    this.defaultValue = this.value
    if (Array.isArray(this.value) && this.value.length < 3) {
      this.value = ['北京市', '北京市', '东城区']
    }
  }

  build() {
    Column({ space: 50 }) {
      Row() {
        Text('取消')
          .fontColor('#909090')
          .onClick(() => {
            this.dialogController.close()
          })
        Text('请选择省市区')
        Text('确定')
          .fontColor('#0A7EE6')
          .onClick(() => {
            if (this.defaultValue.join('') !== this.value.join('')) {
              this.onChange(this.value)
            }
            this.dialogController.close()
          })
      }
      .width('100%')
      .justifyContent(FlexAlign.SpaceBetween)

      AreaPicker({ value: this.value })
    }
    .backgroundColor(Color.White)
    .borderRadius(24)
    .padding(20)
    .width('93%')
  }
}
分享
微博
QQ
微信
回复
2024-11-28 15:43:56
相关问题
HarmonyOS 如何实现级联选择省市区
379浏览 • 1回复 待解决
自定义日期滑动选择器弹窗
389浏览 • 1回复 待解决
HarmonyOS 如何获取用户所在省市区
270浏览 • 1回复 待解决
如何在全局实现一个自定义dialog弹窗
2800浏览 • 1回复 待解决
HarmonyOS 自定义弹窗选择
340浏览 • 1回复 待解决
如何在自定义弹窗再次弹窗
2235浏览 • 1回复 待解决