harmony开发之button组件的使用-LMLPHP

从API version 9开始,该接口支持在ArkTS卡片中使用。

  • 按钮圆角通过通用属性borderRadius设置(不支持通过border接口设置圆角),且只支持设置一个相同的圆角。
  • 当按钮类型为Capsule时,borderRadius设置不生效,按钮圆角始终为宽、高中较小值的一半。
  • 当按钮类型为Circle时,borderRadius即为按钮半径,若未设置borderRadius按钮半径则为宽、高中较小值的一半。
  • 按钮文本通过通用文本样式进行设置。
  • 设置颜色渐变需先设置backgroundColor为透明色。

示例代码:

@Entry
@Component
struct ButtonExample {
  build() {
    Column(){
      Button({ type: ButtonType.Capsule, stateEffect: true }) {
        Row() {
          LoadingProgress().width(20).height(20).margin({ left: 12 }).color(0xFFFFFF)
          Text('loading').fontSize(12).fontColor(0xffffff).margin({ left: 12, right: 12 })
        }.alignItems(VerticalAlign.Center).width(90).height(40)
      }.backgroundColor(0x317aff)
      .width(200)
    }.alignItems(HorizontalAlign.Center).width('90%')//调整容器的水平
    .height(500).justifyContent(FlexAlign.Center)//调整容器的高度

  }
}

使用圆形按钮:

@Entry
@Component
struct ButtonExample {
  build() {
    Column(){
      Text('Circle button').fontSize(15).fontColor(0xCCCCCC)

      Button({ type: ButtonType.Circle, stateEffect: true }) {
                  LoadingProgress().width(20).height(20).color(0xFFFFFF)
      }.width(55).height(55).margin({ left: 20 }).backgroundColor(0xF55A42)

    }.alignItems(HorizontalAlign.Center).width('90%')//调整容器的水平
    .height("80%").justifyContent(FlexAlign.Center)//调整容器的高度

  }
}

harmony开发之button组件的使用-LMLPHP

示例2:

使用button的点击事件,来计数:

// xxx.ets
@Entry
@Component
struct SwipeGestureExample {
  @State count: number = 0//定义用来计数的变量

  build() {
    Column() {
      Text(`${this.count}`)
        .fontSize(30)
        .onClick(() => {
          this.count++
        })
      if (this.count <= 0) {//判断奇偶数
        Button('count is negative').fontSize(30).height(50)
      } else if (this.count % 2 === 0) {
        Button('count is even').fontSize(30).height(50)
      } else {
        Button('count is odd').fontSize(30).height(50)
      }
    }.height('100%').width('100%').justifyContent(FlexAlign.Center)//设置容器的高度
  }
}

harmony开发之button组件的使用-LMLPHP

这里顺带说一哈,空白填充组件(blank),在容器主轴方向上,空白填充组件具有自动填充容器空余部分的能力。仅当父组件为Row/Column/Flex时生效。(该组件从API Version 7开始支持。)

Blank(min?: number | string)

空白填充组件在容器主轴上的最小大小。默认值:0

说明:不支持设置百分比。负值使用默认值。当最小值大于容器可用空间时,使用最小值作为自身大小并超出容器。

可以使用color设置空白填充的填充颜色。默认值:Color.Transparent    从API version 9开始,该接口支持在ArkTS卡片中使用。

其中颜色支持类型为:ResourceColor

Font

设置文本样式。

代码部分如下:

// xxx.ets
@Entry
@Component
struct BlankExample {
  build() {
    Column() {
      Row() {
        Text('Bluetooth').fontSize(18)
        Blank()
        Toggle({ type: ToggleType.Switch }).margin({ top: 14, bottom: 14, left: 6, right: 6 })
      }.width('100%').backgroundColor(0xFFFFFF).borderRadius(15).padding({ left: 12 })
    }.backgroundColor(0xEFEFEF).padding(20)
  }
}

harmony开发之button组件的使用-LMLPHP

以上内容,参考官方代码

12-13 00:14