【鸿蒙next开发】ArkUI框架:ArkTS组件-Popup

 往期鸿蒙5.0全套实战文章必看:(文中附带鸿蒙5.0全栈学习资料)


Popup

Popup是用于显示特定样式气泡。

说明

该组件从API Version 11开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

导入模块

import { Popup, PopupOptions, PopupTextOptions, PopupButtonOptions, PopupIconOptions } from '@kit.ArkUI';

子组件

Popup(options: PopupOptions)

装饰器类型:@Builder

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数

名称类型必填说明
optionsPopupOptions定义Popup组件的类型。

PopupOptions

PopupOptions定义Popup的具体式样参数。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

名称类型必填说明
iconPopupIconOptions

设置popup图标。

说明:

当size设置异常值或0时不显示。

titlePopupTextOptions设置popup标题文本。
messagePopupTextOptions

设置popup内容文本。

说明:

message不支持设置fontWeight。

showCloseboolean | Resource

设置popup关闭按钮。

默认值:true

onClose() => void设置popup关闭按钮回调函数。
buttons[PopupButtonOptions?,PopupButtonOptions?]设置popup操作按钮,按钮最多设置两个。
direction12+Direction

布局方向。

默认值:Direction.Auto

PopupTextOptions

PopupTextOptions设置文本样式。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

名称类型必填描述
textResourceStr设置文本内容。
fontSizenumber | string | Resource

设置文本字体大小。

默认值:$r('sys.float.ohos_id_text_size_body2')

fontColorResourceColor

设置文本字体颜色。

默认值:$r('sys.color.ohos_id_color_text_secondary')

fontWeightnumber | FontWeight | string

设置文本字体粗细。

默认值:FontWeight.Regular

PopupButtonOptions

PopupButtonOptions定义按钮的相关属性和事件。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

名称类型必填描述
textResourceStr设置按钮内容。
action() => void设置按钮click回调。
fontSizenumber | string | Resource

设置按钮文本字体大小。

默认值:$r('sys.float.ohos_id_text_size_button2')

fontColorResourceColor

设置按钮文本字体颜色。

默认值:$r('sys.color.ohos_id_color_text_primary_activated')

PopupIconOptions

PopupIconOptions定义icon(左上角图标)的属性。

元服务API: 从API version 12开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

名称类型必填描述
imageResourceStr设置图标内容。
widthDimension

设置图标宽度。

默认值:32VP

heightDimension

设置图标高度。

默认值:32VP

fillColorResourceColor

设置图标填充颜色。

说明:

仅针对svg图源生效。

borderRadiusLength | BorderRadiuses

设置图标圆角。

默认值:$r('sys.float.ohos_id_corner_radius_default_s')

示例

示例1(设置气泡样式)

该示例通过配置PopupIconOptions、PopupTextOptions、PopupButtonOptions实现气泡的样式。

// xxx.ets
import { Popup, PopupTextOptions, PopupButtonOptions, PopupIconOptions } from '@kit.ArkUI';


@Entry
@Component
struct PopupExample {


  build() {
    Row() {
      // popup 自定义高级组件
      Popup({
        // PopupIconOptions类型设置图标内容
        icon: {
          image: $r('app.media.icon'),
          width:32,
          height:32,
          fillColor:Color.White,
          borderRadius: 16
        } as PopupIconOptions,
        // PopupTextOptions类型设置文字内容
        title: {
          text: 'This is a popup with PopupOptions',
          fontSize: 20,
          fontColor: Color.Black,
          fontWeight: FontWeight.Normal
        } as PopupTextOptions,
        // PopupTextOptions类型设置文字内容
        message: {
          text: 'This is the message',
          fontSize: 15,
          fontColor: Color.Black
        } as PopupTextOptions,
        showClose: false,
        onClose: () => {
          console.info('close Button click')
        },
        // PopupButtonOptions类型设置按钮内容
        buttons: [{
          text: 'confirm',
          action: () => {
            console.info('confirm button click')
          },
          fontSize: 15,
          fontColor: Color.Black,
        },
          {
            text: 'cancel',
            action: () => {
              console.info('cancel button click')
            },
            fontSize: 15,
            fontColor: Color.Black
          },] as [PopupButtonOptions?, PopupButtonOptions?]
      })
    }
    .width(300)
    .height(200)
    .borderWidth(2)
    .justifyContent(FlexAlign.Center)
  }
}

示例 2(设置镜像效果)

该示例通过配置direction实现Popup的镜像效果。

// xxx.ets
import { Popup, PopupTextOptions, PopupButtonOptions, PopupIconOptions } from '@kit.ArkUI'


@Entry
@Component
struct PopupPage {
  @State currentDirection: Direction = Direction.Rtl


  build() {
    Column() {
      // popup 自定义高级组件
      Popup({
        //PopupIconOptions 类型设置图标内容
        direction: this.currentDirection,
        icon: {
          image: $r('app.media.icon'),
          width: 32,
          height: 32,
          fillColor: Color.White,
          borderRadius: 16,
        } as PopupIconOptions,
        // PopupTextOptions 类型设置文字内容
        title: {
          text: 'This is a popup with PopupOptions',
          fontSize: 20,
          fontColor: Color.Black,
          fontWeight: FontWeight.Normal,


        } as PopupTextOptions,
        //PopupTextOptions 类型设置文字内容
        message: {
          text: 'This is the message',
          fontSize: 15,
          fontColor: Color.Black,
        } as PopupTextOptions,
        showClose: true,
        onClose: () => {
          console.info('close Button click')
        },
        // PopupButtonOptions 类型设置按钮内容
        buttons: [{
          text: 'confirm',
          action: () => {
            console.info('confirm button click')
          },
          fontSize: 15,
          fontColor: Color.Black,


        },
          {
            text: 'cancel',
            action: () => {
              console.info('cancel button click')
            },
            fontSize: 15,
            fontColor: Color.Black,
          },] as [PopupButtonOptions?, PopupButtonOptions?],
      })


    }
    .justifyContent(FlexAlign.Center)
    .width('100%')
    .height('100%')
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值