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和状态管理特性。