HarmonyOS Next快速入门:Button组件

举报
鸿蒙开发工程师 发表于 2025/06/23 16:11:33 2025/06/23
【摘要】 ##HarmonyOS Next快速入门##HarmonyOS应用开发##教育##Button是按钮组件,通常用于响应用户的点击操作,其类型包括胶囊按钮、圆形按钮、普通按钮。Button做为容器使用时可以通过添加子组件实现包含文字、图片等元素的按钮。Button组件可以包含子组件。Button(label?: ResourceStr, options?: { type?: ButtonTyp...

##HarmonyOS Next快速入门##HarmonyOS应用开发##教育##

Button是按钮组件,通常用于响应用户的点击操作,其类型包括胶囊按钮、圆形按钮、普通按钮。Button做为容器使用时可以通过添加子组件实现包含文字、图片等元素的按钮。

Button组件可以包含子组件。

Button(label?: ResourceStr, options?: { type?: ButtonType, stateEffect?: boolean })

label:按钮显示的文字内容
type:定义按钮样式
stateEffect:设置按钮按下时是否开启切换效果,默认值为true开启。

ButtonType枚举类型:

  • ButtonType.Capsule:胶囊型按钮(圆角为高度的一半),默认值。此类型按钮的圆角自动设置为高度的一半,不支持通过borderRadius属性重新设置圆角。
  • ButtonType.Circle:圆形按钮。此类型按钮为圆形,不支持通过borderRadius属性重新设置圆角。
  • ButtonType.Normal:正常按钮。此类型的按钮默认圆角为0,支持通过borderRadius属性重新设置圆角。

stateEffect:
按钮按下时是否开启按压态显示效果,当设置为false时,按压效果关闭。

  • 默认值:true
  • 说明:当开启按压态显示效果,开发者设置状态样式时,会基于状态样式设置完成后的背景色再进行颜色叠加。

自定义样式

  • 设置边框弧度。使用通用属性来自定义按钮样式。例如通过borderRadius属性设置按钮的边框弧度。
  • 设置文本样式。通过添加文本样式设置按钮文本的展示样式。
  • 设置背景颜色。添加backgroundColor属性设置按钮的背景颜色。

包含子组件

      Button({ type: ButtonType.Circle }) {
        Image($r('app.media.add'))
          .fillColor(Color.White)
          .width(30)
          .height(30)
      }
      .width(50)
      .height(50)

设置按钮点击事件

  .onClick(() => {
    // 处理点击事件逻辑
    this.message+="+";
  })

代码实例:ButtonPage

@Entry
@Component
struct ButtonPage {
  @State message: string = '第4节 Button组件';

  build() {
    Column({space:6}) {
      Text(this.message)
        .fontSize(30)
        .fontWeight(FontWeight.Bold)
      Button("默认胶囊按钮")
      Button('设置为Normal的按钮',{type:ButtonType.Normal})
      Button('圆形按钮',{type:ButtonType.Circle}).width(100)

      Button({type:ButtonType.Circle}){
        Image($r('app.media.add')).fillColor(Color.White).width(30).height(30)
      }.width(50).height(50)
      .onClick(()=>{
        //点击事件业务逻辑
        this.message+="+";
      })
    }
    .height('100%')
    .width('100%')
  }
}
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。