HarmonyOS 鸿蒙Next对话框

HarmonyOS 鸿蒙Next对话框

import { Want } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { common } from '@kit.AbilityKit';

@Component
struct xxx {
  imageIcon: string = 'app.media.startIcon'
  @Require
  text: string = ''
  reverse: boolean = false

  build() {
    Row({ space: 10 }) {
      Image($r(`${this.imageIcon}`)).margin({ left:10,right:10 }).width(50).height(50)

      Stack({
        alignContent: this.reverse ? Alignment.End : Alignment.Start,
      }) {
        if (this.reverse) {
          Polygon({ width: 8, height: 8 })
            .points([[0, 0], [0, 8], [8, 4]])
            .fill(Color.Red)
            .offset({
              x: 8
            })
        } else {
          Polygon({ width: 8, height: 8 })
            .points([[0, 4], [8, 8], [8, 0]])
            .fill(Color.Red)
            .offset({
              x: -8
            })
        }

        Text(this.text)
          .fontSize(20)
          .padding(10)
          .backgroundColor(Color.Red)
          .borderRadius(10)

      }
      .layoutWeight(1)
    }
    .width('100%')
    .reverse(this.reverse)
  }
}

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';

  build() {
    Column() {
      xxx({
        imageIcon: "app.media.startIcon",
        text: 'Hello World',
      })
      xxx({
        text: 'Hello World',
        reverse: true
      })
      xxx({
        text: 'Hello WorldHello WorldHello WorldHello WorldHello WorldHello WorldHello WorldHello World',
        reverse: true
      })
      xxx({
        text: 'Hello WorldHello WorldHello WorldHello WorldHello WorldHello WorldHello WorldHello World',
      })
    }
    .height('100%')
    .width('100%')
  }
}

更多关于HarmonyOS 鸿蒙Next对话框的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

鸿蒙Next对话框基于ArkUI框架实现,提供AlertDialog、ActionSheet等组件。支持自定义内容布局、按钮样式和交互行为。通过@CustomDialog装饰器可创建个性化弹窗,使用模态或非模态方式展示。对话框状态管理与组件生命周期绑定,支持动态更新内容。

更多关于HarmonyOS 鸿蒙Next对话框的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这段代码展示了一个自定义对话框组件在HarmonyOS Next中的实现方式。组件通过@Component装饰器定义,包含图标、文本内容和布局方向的控制。使用Stack布局结合Polygon绘制箭头,根据reverse属性动态调整箭头方向和文本对齐方式。@Entry装饰的Index组件演示了四种不同参数组合的调用示例,展示了组件在不同配置下的渲染效果。代码结构清晰,体现了ArkTS的声明式UI和状态管理特性。

回到顶部