Action Sheet (ActionSheet)

An action sheet is a dialog box that displays actions a user can take.

NOTE

The APIs of this module are supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version.

The functionality of this module depends on UI context. This means that the APIs of this module cannot be used where the UI context is unclear. For details, see UIContext.

Since API version 10, you can use the showActionSheet API in UIContext to obtain the UI context.

ActionSheet.show

show(value: ActionSheetOptions)

Shows an action sheet in the given settings.

System capability: SystemCapability.ArkUI.ArkUI.Full

Parameters

Name Type Mandatory Description.
value ActionSheetOptions Yes Parameters of the action sheet.

ActionSheetOptions

Name Type Mandatory Description
title Resource | string Yes Title of the dialog box.
subtitle10+ ResourceStr No Subtitle of the dialog box.
message Resource | string Yes Content of the dialog box.
autoCancel boolean No Whether to close the dialog box when the overlay is clicked.
Default value: true
The value true means to close the dialog box when the overlay is clicked, and false means the opposite.
confirm {
enabled10+?: boolean,
defaultFocus10+?: boolean,
style10+?: DialogButtonStyle,
value: ResourceStr,
action: () => void
}
No Information about the confirm button.
enabled: whether the button responds to clicks. The value true means that the button responds to clicks, and false means the opposite.
Default value: true
defaultFocus: whether the button is the default focus. The value true means that the button is the default focus, and false means the opposite.
Default value: false
style: button style.
Default value: DialogButtonStyle.DEFAULT
value: button text.
action: Button: callback upon button clicking.
cancel () => void No Callback invoked when the dialog box is closed after the overlay is clicked.
alignment DialogAlignment No Alignment mode of the dialog box in the vertical direction.
Default value: DialogAlignment.Bottom
offset {
dx: Length,
dy: Length
}
No Offset of the dialog box relative to the alignment position.
Default value:
1. When alignment is set to Top, TopStart, or TopEnd: {dx: 0,dy: "40vp"}
2. When alignment is set to any other value: {dx: 0,dy: "-40vp"}
sheets Array<SheetInfo> Yes Options in the dialog box. Each option supports the image, text, and callback.
maskRect10+ Rectangle No Mask area of the dialog box. Events outside the mask area are transparently transmitted, and events within the mask area are not.
Default value: { x: 0, y: 0, width: '100%', height: '100%' }
showInSubWindow11+ boolean No Whether to show the dialog box in a sub-window when the dialog box needs to be displayed outside the main window.
Default value: false
NOTE
A dialog box whose showInSubWindow attribute is true cannot trigger the display of another dialog box whose showInSubWindow attribute is also true.
isModal11+ boolean No Whether the dialog box is a modal. A modal dialog box has a mask applied, while a non-modal dialog box does not.
Default value: true
backgroundColor11+ ResourceColor No Backplane color of the dialog box.
Default value: Color.Transparent
backgroundBlurStyle11+ BlurStyle No Background blur style of the dialog box.
Default value: BlurStyle.COMPONENT_ULTRA_THICK

SheetInfo

Name Type Mandatory Description
title ResourceStr Yes Sheet text.
icon ResourceStr No Sheet icon. By default, no icon is displayed.
action ()=>void Yes Callback when the sheet is selected.

DialogButtonStyle10+

Name Description
DEFAULT Blue text on white background (black background under the dark theme).
HIGHLIGHT White text on blue background.

Example

Example 1

@Entry
@Component
struct ActionSheetExample {
  build() {
    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
      Button('Click to Show ActionSheet')
        .onClick(() => {
          ActionSheet.show({
            title: 'ActionSheet title',
            subtitle: 'ActionSheet subtitle',
            message: 'message',
            autoCancel: true,
            confirm: {
              defaultFocus: true,
              value: 'Confirm button',
              action: () => {
                console.log('Get Alert Dialog handled')
              }
            },
            cancel: () => {
              console.log('actionSheet canceled')
            },
            alignment: DialogAlignment.Bottom,
            offset: { dx: 0, dy: -10 },
            sheets: [
              {
                title: 'apples',
                action: () => {
                  console.log('apples')
                }
              },
              {
                title: 'bananas',
                action: () => {
                  console.log('bananas')
                }
              },
              {
                title: 'pears',
                action: () => {
                  console.log('pears')
                }
              }
            ]
          })
        })
    }.width('100%')
    .height('100%')
  }
}

en-us_image_action

Example 2

@Entry
@Component
struct ActionSheetExample {
  build() {
    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
      Button('Click to Show ActionSheet')
        .onClick(() => {
          ActionSheet.show({
            title: 'ActionSheet title',
            subtitle: 'ActionSheet subtitle',
            message: 'message',
            autoCancel: true,
            showInSubWindow: true,
            isModal: true,
            confirm: {
              defaultFocus: true,
              value: 'Confirm button',
              action: () => {
                console.log('Get Alert Dialog handled')
              }
            },
            cancel: () => {
              console.log('actionSheet canceled')
            },
            alignment: DialogAlignment.Center,
            offset: { dx: 0, dy: -10 },
            sheets: [
              {
                title: 'apples',
                action: () => {
                  console.log('apples')
                }
              },
              {
                title: 'bananas',
                action: () => {
                  console.log('bananas')
                }
              },
              {
                title: 'pears',
                action: () => {
                  console.log('pears')
                }
              }
            ]
          })
        })
    }.width('100%')
    .height('100%')
  }
}

en-us_image_action_showinsubwindow