第九节HarmonyOS 常用基础组件4-Button

一、Button

Button组件主要用来响应点击操作,可以包含子组件。

示例代码:

复制代码
@Entry
@Component
struct Index {
  build() {
    Row() {
      Column() {
        Button('确定', { type: ButtonType.Capsule, stateEffect: true })
          .width('90%')
          .height(40)
          .fontSize(16)
          .fontWeight(FontWeight.Medium)
          .backgroundColor('#007DFF')

      }
      .width('100%')
    }
    .height('100%')
  }
}

效果图:

二、设置按钮样式

type用于定义按钮样式,示例代码中ButtonType.Capsule表示胶囊形按钮;stateEffect用于设置按钮按下时是否开启切换效果,当状态置为false时,点击效果关闭,默认值为true。

我们可以设置多种样式的Button,除了Capsule可以以设置Normal和Circle:

代码:

复制代码
@Entry
@Component
struct Index {
  build() {
    Row() {
      Column() {
        Button('确定', { type: ButtonType.Normal, stateEffect: true })
          .width('90%')
          .height(50)
          .fontSize(20)
          .backgroundColor('#007DFF')
        Blank(10)
        Button('确定1', { type: ButtonType.Capsule, stateEffect: true })
          .width('90%')
          .height(50)
          .fontSize(20)
          .backgroundColor('#007DFF')
        Blank(10)
        Button('确定', { type: ButtonType.Circle, stateEffect: true })
          .width('90%')
          .height(100)
          .fontSize(20)
          .backgroundColor('#007DFF')

      }
      .width('100%')
    }
    .height('100%')
  }
}
  1. Capsule:胶囊型按钮(圆角默认为高度的一半)。
  1. Circle:圆形按钮。
  1. Normal:普通按钮(默认不带圆角)。

三、设置按钮点击事件

可以给Button绑定onClick事件,每当用户点击Button的时候,就会回调执行onClick方法,调用里面的逻辑代码。

复制代码
Button('登录', { type: ButtonType.Capsule, stateEffect: true })
  ...
  .onClick(() => {
  // 处理点击事件逻辑
  })

四、包含子组件

Button组件可以包含子组件,让您可以开发出更丰富多样的Button,下面的示例代码中Button组件包含了一个Image组件:

复制代码
Button({ type: ButtonType.Circle, stateEffect: true }) {
  Image($r('app.media.icon_delete'))
    .width(30)
    .height(30)
}
.width(55)
.height(55)
.backgroundColor(0x317aff)

效果图如下:

相关推荐
Dream-Y.ocean3 分钟前
[鸿蒙PC三方库适配实战] mpv 多层依赖树完整解析与适配实践
华为·harmonyos
lichenyang4535 分钟前
鸿蒙 ArkTS 聊天 Demo 功能复盘:真实 SSE、多轮会话、暂停输出、历史记录与防崩溃修复
华为·harmonyos
互联网散修5 分钟前
鸿蒙实战:播放器手势冲突解决方案——当Slider遇上单击/双击/滑动手势进度条如何独善其身
华为·harmonyos·手势冲突解决
枫叶丹432 分钟前
【HarmonyOS 6.0】Map Kit:用自定义组件灵活构建地图Marker图标
华为·harmonyos
●VON1 小时前
AtomGit Flutter鸿蒙客户端:首页与仓库列表
flutter·华为·架构·harmonyos·鸿蒙
●VON1 小时前
AtomGit Flutter鸿蒙客户端:仓库搜索
flutter·microsoft·华为·跨平台·harmonyos·鸿蒙
GitCode官方1 小时前
开源鸿蒙跨平台直播|Flutter 鸿蒙化进阶:三方库适配与性能调优实战
flutter·华为·开源·harmonyos·atomgit
坚果派·白晓明1 小时前
鸿蒙PC三方库使用:使用 AtomCode + Skills 自动完成鸿蒙化三方库Protobuf集成
华为·harmonyos·c/c++三方库·c/c++三方库适配
互联网散修1 小时前
鸿蒙实战:图片编辑器——文字功能完全实现
华为·编辑器·harmonyos·图片编辑添加文字
小雨下雨的雨2 小时前
通过鸿蒙PC Electron框架技术完成-井字棋游戏 - 实现详解
前端·javascript·游戏·华为·electron·鸿蒙