当前位置:   article > 正文

【鸿蒙开发】弹窗组件AlertDialog,ActionSheet,DatePickerDialog,TimePickerDialog,TextPickerDialog_alertdialog.show

alertdialog.show

1. AlertDialog

显示警告弹窗。

AlertDialog.show(value: AlertDialogParamWithConfirm | AlertDialogParamWithButtons)

AlertDialogParamWithConfirm对象说明

参数名参数类型必填参数描述
titleResourceStr弹窗标题。
messageResourceStr弹窗内容。
autoCancelboolean

点击遮障层时,是否关闭弹窗。

默认值:true

confirm

{

value: ResourceStr,

fontColor?: ResourceColor,

backgroundColor?: ResourceColor,

action: () => void

}

确认按钮的文本内容、文本色、按钮背景色和点击回调。
cancel() => void点击遮障层关闭dialog时的回调。
alignmentDialogAlignment

弹窗在竖直方向上的对齐方式

默认值:DialogAlignment.Default

offsetOffset弹窗相对alignment所在位置的偏移量。
gridCountnumber弹窗容器宽度所占用栅格数。

AlertDialogParamWithButtons对象说明

参数名参数类型必填参数描述
titleResourceStr弹窗标题。
messageResourceStr弹窗内容。
autoCancelboolean

点击遮障层时,是否关闭弹窗。

默认值:true

primaryButton

{

value: ResourceStr,

fontColor?: ResourceColor,

backgroundColor?: ResourceColor,

action: () => void;

}

按钮的文本内容、文本色、按钮背景色和点击回调。
secondaryButton

{

value: ResourceStr,

fontColor?: ResourceColor,

backgroundColor?: ResourceColor,

action: () => void;

}

按钮的文本内容、文本色、按钮背景色和点击回调。
cancel() => void点击遮障层关闭dialog时的回调。
alignmentDialogAlignment

弹窗在竖直方向上的对齐方式。

默认值:DialogAlignment.Default

offsetOffset弹窗相对alignment所在位置的偏移量。
gridCountnumber弹窗容器宽度所占用栅格数。

DialogAlignment枚举说明

名称描述
Top垂直顶部对齐。
Center垂直居中对齐。
Bottom垂直底部对齐。
Default默认对齐。
TopStart8+左上对齐。
TopEnd8+右上对齐。
CenterStart8+左中对齐。
CenterEnd8+右中对齐。
BottomStart8+左下对齐。
BottomEnd8+右下对齐。

示例

  1. @Entry
  2. @Component
  3. struct APage {
  4. build() {
  5. Column() {
  6. Button("警告弹窗,单个按钮").onClick(() => {
  7. AlertDialog.show({
  8. title: '操作提示', // 弹窗标题
  9. message: '你确认删除吗?', // 弹窗内容
  10. autoCancel: true, //点击遮障层时,是否关闭弹窗。
  11. alignment: DialogAlignment.Center, //弹窗位置
  12. gridCount: 3, // 弹窗容器宽度所占用栅格数
  13. offset: { dx: 0, dy: 0 }, //弹窗相对alignment所在位置的偏移量
  14. // 单个按钮
  15. confirm: {
  16. value: '确定',
  17. action: () => {
  18. console.info('xxxxxx')
  19. },
  20. fontColor: '#00f'
  21. },
  22. })
  23. })
  24. Button("警告弹窗,两个按钮").onClick(() => {
  25. AlertDialog.show({
  26. title: '操作提示', // 弹窗标题
  27. message: '你确认删除吗?', // 弹窗内容
  28. autoCancel: true, //点击遮障层时,是否关闭弹窗。
  29. alignment: DialogAlignment.Center, //弹窗位置
  30. gridCount: 3, // 弹窗容器宽度所占用栅格数
  31. offset: { dx: 0, dy: 0 }, //弹窗相对alignment所在位置的偏移量
  32. // 多个按钮
  33. primaryButton: { //主按钮的文本内容、文本色、按钮背景色和点击回调。
  34. value: '确认', //按钮文字
  35. action: () => { //按钮回调
  36. console.info('成功点击')
  37. },
  38. fontColor: '#f00'
  39. },
  40. secondaryButton: { //副按钮的文本内容、文本色、按钮背景色和点击回调。
  41. value: '取消', //按钮文字
  42. action: () => { //按钮回调
  43. console.info('取消了')
  44. },
  45. fontColor: '#00f'
  46. },
  47. })
  48. })
  49. }
  50. .width("100%")
  51. .height("100%")
  52. }
  53. }

2. ActionSheet

显示列表选择弹窗。

ActionSheet.show(value: { title: string | Resource, message: string | Resource, confirm?: {value: string | Resource, action:() => void}, cancel?:()=>void, sheets: Array<SheetInfo>, autoCancel?:boolean, alignment?: DialogAlignment, offset?: { dx: number | string | Resource; dy: number | string | Resource } })

参数:

参数名参数类型必填参数描述
titleResource | string弹窗标题。
messageResource | string弹窗内容。
autoCancelboolean

点击遮障层时,是否关闭弹窗。

默认值:true

confirm

{

value: ResourceStr,

action: () => void

}

确认按钮的文本内容和点击回调。

默认值:

value:按钮文本内容。

action: 按钮选中时的回调。

cancel() => void点击遮障层关闭dialog时的回调。
alignmentDialogAlignment

弹窗在竖直方向上的对齐方式。

默认值:DialogAlignment.Bottom

offset

{

dx: Length,

dy: Length

}

弹窗相对alignment所在位置的偏移量。{

dx: 0,

dy: 0

}

sheetsArray<SheetInfo>设置选项内容,每个选择项支持设置图片、文本和选中的回调。

SheetInfo接口说明

参数名参数类型必填参数描述
titleResourceStr选项的文本内容。
iconResourceStr选项的图标,默认无图标显示。
action()=>void选项选中的回调。

示例

  1. @Entry
  2. @Component
  3. struct APage {
  4. build() {
  5. Column() {
  6. Button("列表选择弹窗").onClick(() => {
  7. ActionSheet.show({
  8. title: '请选择水果',
  9. message: '水果信息',
  10. autoCancel: true,
  11. confirm: {
  12. value: '确认按钮',
  13. action: () => {
  14. console.log('确认点击成功')
  15. }
  16. },
  17. cancel: () => {
  18. console.log('你点击了关闭')
  19. },
  20. alignment: DialogAlignment.Bottom,
  21. offset: { dx: 0, dy: -20 },
  22. sheets: [
  23. {
  24. title: 'apples',
  25. action: () => {
  26. console.log('apples')
  27. }
  28. },
  29. {
  30. title: 'bananas',
  31. action: () => {
  32. console.log('bananas')
  33. }
  34. },
  35. {
  36. title: 'pears',
  37. action: () => {
  38. console.log('pears')
  39. }
  40. }
  41. ]
  42. })
  43. })
  44. }
  45. .width("100%")
  46. .height("100%")
  47. }
  48. }

3. DatePickerDialog

显示日期滑动选择器弹窗。

DatePickerDialog.show(options?: DatePickerDialogOptions)

参数:

参数名

参数类型

必填

默认值

参数描述

start

Date

Date('1970-1-1')

设置选择器的起始日期。

end

Date

Date('2100-12-31')

设置选择器的结束日期。

selected

Date

当前系统日期

设置当前选中的日期。

lunar

boolean

false

日期是否显示为农历。

onAccept

(value: DatePickerResult) => void

-

点击弹窗中的“确定”按钮时触发该回调。

onCancel

() => void

-

点击弹窗中的“取消”按钮时触发该回调。

onChange

(value: DatePickerResult) => void

-

滑动弹窗中的滑动选择器使当前选中项改变时触发该回调。

示例

  1. @Entry
  2. @Component
  3. struct APage {
  4. selectedDate: Date = new Date("2010-1-1")
  5. build() {
  6. Column() {
  7. Button("阳历日期")
  8. .margin(20)
  9. .onClick(() => {
  10. DatePickerDialog.show({
  11. start: new Date("2000-1-1"),
  12. end: new Date("2100-12-31"),
  13. selected: this.selectedDate,
  14. onAccept: (value: DatePickerResult) => {
  15. // 通过Date的setFullYear方法设置按下确定按钮时的日期,这样当弹窗再次弹出时显示选中的是上一次确定的日期
  16. this.selectedDate.setFullYear(value.year, value.month, value.day)
  17. console.info("DatePickerDialog:onAccept()" + JSON.stringify(value))
  18. },
  19. onCancel: () => {
  20. console.info("DatePickerDialog:onCancel()")
  21. },
  22. onChange: (value: DatePickerResult) => {
  23. console.info("DatePickerDialog:onChange()" + JSON.stringify(value))
  24. }
  25. })
  26. })
  27. Button("阴历日期")
  28. .margin(20)
  29. .onClick(() => {
  30. DatePickerDialog.show({
  31. start: new Date("2000-1-1"),
  32. end: new Date("2100-12-31"),
  33. selected: this.selectedDate,
  34. lunar: true,
  35. onAccept: (value: DatePickerResult) => {
  36. this.selectedDate.setFullYear(value.year, value.month, value.day)
  37. console.info("DatePickerDialog:onAccept()" + JSON.stringify(value))
  38. },
  39. onCancel: () => {
  40. console.info("DatePickerDialog:onCancel()")
  41. },
  42. onChange: (value: DatePickerResult) => {
  43. console.info("DatePickerDialog:onChange()" + JSON.stringify(value))
  44. }
  45. })
  46. })
  47. }
  48. .width("100%")
  49. .height("100%")
  50. }
  51. }

4. TimePickerDialog

显示时间滑动选择器弹窗。

TimePickerDialog.show(options?: TimePickerDialogOptions)

TimePickerDialogOptions参数:

参数名

参数类型

必填

参数描述

selected

Date

设置当前选中的时间。

默认值:当前系统时间

useMilitaryTime

boolean

展示时间是否为24小时制,默认为12小时制。

默认值:false

onAccept

(value: TimePickerResult) => void

点击弹窗中的“确定”按钮时触发该回调。

onCancel

() => void

点击弹窗中的“取消”按钮时触发该回调。

onChange

(value: TimePickerResult) => void

滑动弹窗中的选择器使当前选中时间改变时触发该回调。

示例

  1. @Entry
  2. @Component
  3. struct APage {
  4. private selectTime: Date = new Date('2020-12-25T08:30:00')
  5. build() {
  6. Column() {
  7. Button("TimePickerDialog 12小时制")
  8. .margin(20)
  9. .onClick(() => {
  10. TimePickerDialog.show({
  11. selected: this.selectTime,
  12. onAccept: (value: TimePickerResult) => {
  13. // 设置selectTime为按下确定按钮时的时间,这样当弹窗再次弹出时显示选中的为上一次确定的时间
  14. this.selectTime.setHours(value.hour, value.minute)
  15. console.info("TimePickerDialog:onAccept()" + JSON.stringify(value))
  16. },
  17. onCancel: () => {
  18. console.info("TimePickerDialog:onCancel()")
  19. },
  20. onChange: (value: TimePickerResult) => {
  21. console.info("TimePickerDialog:onChange()" + JSON.stringify(value))
  22. }
  23. })
  24. })
  25. Button("TimePickerDialog 24小时制")
  26. .margin(20)
  27. .onClick(() => {
  28. TimePickerDialog.show({
  29. selected: this.selectTime,
  30. useMilitaryTime: true,
  31. onAccept: (value: TimePickerResult) => {
  32. this.selectTime.setHours(value.hour, value.minute)
  33. console.info("TimePickerDialog:onAccept()" + JSON.stringify(value))
  34. },
  35. onCancel: () => {
  36. console.info("TimePickerDialog:onCancel()")
  37. },
  38. onChange: (value: TimePickerResult) => {
  39. console.info("TimePickerDialog:onChange()" + JSON.stringify(value))
  40. }
  41. })
  42. })
  43. }
  44. .width("100%")
  45. .height("100%")
  46. }
  47. }

5. TextPickerDialog

显示文本滑动选择器弹窗。

TextPickerDialog.show(options?: TextPickerDialogOptions)

TextPickerDialogOptions参数:

参数名

参数类型

必填

参数描述

range

string[] | Resource

设置文本选择器的选择范围。

selected

number

设置选中项的索引值。

默认值:0

value

string

设置选中项的文本内容。当设置了selected参数时,该参数不生效。如果设置的value值不在range范围内,则默认取range第一个元素。

defaultPickerItemHeight

number | string

设置选择器中选项的高度。

onAccept

(value: TextPickerResult) => void

点击弹窗中的“确定”按钮时触发该回调。

onCancel

() => void

点击弹窗中的“取消”按钮时触发该回调。

onChange

(value: TextPickerResult) => void

滑动弹窗中的选择器使当前选中项改变时触发该回调。

TextPickerResult对象说明

名称

类型

描述

value

string

选中项的文本内容。

index

number

选中项在选择范围数组中的索引值。

示例

  1. @Entry
  2. @Component
  3. struct APage {
  4. private select: number = 2
  5. private fruits: string[] = ['apple1', 'orange2', 'peach3', 'grape4', 'banana5']
  6. build() {
  7. Column() {
  8. Button("文本滑动选择器")
  9. .margin(20)
  10. .onClick(() => {
  11. TextPickerDialog.show({
  12. range: this.fruits,
  13. selected: this.select,
  14. onAccept: (value: TextPickerResult) => {
  15. // 设置select为按下确定按钮时候的选中项index,这样当弹窗再次弹出时显示选中的是上一次确定的选项
  16. this.select = value.index
  17. console.info("TextPickerDialog:onAccept()" + JSON.stringify(value))
  18. },
  19. onCancel: () => {
  20. console.info("TextPickerDialog:onCancel()")
  21. },
  22. onChange: (value: TextPickerResult) => {
  23. console.info("TextPickerDialog:onChange()" + JSON.stringify(value))
  24. }
  25. })
  26. })
  27. }
  28. .width('100%')
  29. .height('100%')
  30. }
  31. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/985413
推荐阅读
相关标签
  

闽ICP备14008679号