基础ArkTS组件:二维码,滚动条与滑动条,多选框与多选框群组(HarmonyOS学 ...

打印 上一主题 下一主题

主题 548|帖子 548|积分 1644



二维码组件


QRCode

子组件


接口

QRCode(value: string)
参数:

  参数名
  参数类型
  必填
  参数描述
  value
  string
  是
  二维码内容字符串。最大支持256个字符,若超出,则截取前256个字符。
阐明:
该字符串内容确保有用,不支持null、undefined以及空内容。
  属性

除支持通用属性外,还支持以下属性。
  名称
  参数类型
  描述
  color
  ResourceColor
  设置二维码颜色。
默认值:Color.Black
从API version 9开始,该接口支持在ArkTS卡片中使用。
  backgroundColor
  ResourceColor
  设置二维码配景颜色。
默认值:Color.White
从API version 9开始,该接口支持在ArkTS卡片中使用。
  事件

通用事件支持点击事件、触摸事件、挂载卸载事件。

QRCode定义介绍

  1. interface QRCodeInterface {
  2.   (value: string): QRCodeAttribute;
  3. }
复制代码


  • value:设置将要生成二维码的内容。
简朴样例如下所示:
  1. QRCode('Hello, OpenHarmony')
  2.   .width(70)
  3.   .height(70)
复制代码
运行效果如下图所示:

官方简朴案例:

  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct QRCodeExample {
  5.   private value: string = 'hello world'
  6.   build() {
  7.     Column({ space: 5 }) {
  8.       Text('normal').fontSize(9).width('90%').fontColor(0xCCCCCC).fontSize(30)
  9.       QRCode(this.value).width(200).height(200)
  10.       // 设置二维码颜色
  11.       Text('color').fontSize(9).width('90%').fontColor(0xCCCCCC).fontSize(30)
  12.       QRCode(this.value).color(0xF7CE00).width(200).height(200)
  13.       // 设置二维码背景色
  14.       Text('backgroundColor').fontSize(9).width('90%').fontColor(0xCCCCCC).fontSize(30)
  15.       QRCode(this.value).width(200).height(200).backgroundColor(Color.Orange)
  16.     }.width('100%').margin({ top: 5 })
  17.   }
  18. }
复制代码




滚动条组件

滚动条组件ScrollBar,用于共同可滚动组件使用,如List、Grid、Scroll。
子组件

可以包含单个子组件。
接口

ScrollBar(value: { scroller: Scroller, direction?: ScrollBarDirection, state?: BarState })
参数:
  参数名
  参数类型
  必填
  参数描述
  scroller
  Scroller
  是
  可滚动组件的控制器。用于与可滚动组件进行绑定。
  direction
  ScrollBarDirection
  否
  滚动条的方向,控制可滚动组件对应方向的滚动。
默认值:ScrollBarDirection.Vertical
  state
  BarState
  否
  滚动条状态。
默认值:BarState.Auto
  阐明
ScrollBar组件负责定义可滚动区域的行为样式,ScrollBar的子节点负责定义滚动条的行为样式。
滚动条组件与可滚动组件通过Scroller进行绑定,且只有当两者方向相同时,才气联动,ScrollBar与可滚动组件仅支持一对一绑定。
ScrollBarDirection罗列阐明

  名称
  描述
  Vertical
  纵向滚动条。
  Horizontal
  横向滚动条。
  
Scroller简朴介绍

Scroller 作为滚动容器组件的控制器,它提供了滚动子组件的各种本领,比如设置子组件滚动指定位置、滚动到底部以及滚动到下一页上一页等本领。现在 Scrolller 只支持绑定到 Scroll 和 List 上。
Scroller 定义如下:
  1. export declare class Scroller {
  2.   scrollTo(value: {
  3.     xOffset: number | string, yOffset: number | string, animation?: { duration: number, curve: Curve }
  4.   });
  5.   scrollEdge(value: Edge);
  6.   scrollPage(value: { next: boolean, direction?: Axis });
  7.   currentOffset();
  8.   scrollToIndex(value: number);
  9. }
复制代码


  • scrollTo:设置子组件滚动到指定位置,在滚动的时候还可以根据 animation 参数设置动画。
  • scrollEdge:滚动到界限, Edge 提供了多种类型,读者可自行查阅。
  • scrollPage:滚动到上一页或者下一页。
  • currentOffset:获取当前滚动的偏移量。
  • scrollToIndex:滚动到指定下标,现在只支持 List
  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct ScrollBarExample {
  5.   private scroller: Scroller = new Scroller()
  6.   private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
  7.   build() {
  8.     Column() {
  9.       Stack({ alignContent: Alignment.End }) {
  10.         Scroll(this.scroller) {
  11.           Flex({ direction: FlexDirection.Column }) {
  12.             ForEach(this.arr, (item) => {
  13.               Row() {
  14.                 Text(item.toString())
  15.                   .width('80%')
  16.                   .height(60)
  17.                   .backgroundColor('#3366CC')
  18.                   .borderRadius(15)
  19.                   .fontSize(16)
  20.                   .textAlign(TextAlign.Center)
  21.                   .margin({ top: 5 })
  22.               }
  23.             }, item => item)
  24.           }.margin({ right: 15 })
  25.         }
  26.         .width('90%')
  27.         .scrollBar(BarState.Off)
  28.         .scrollable(ScrollDirection.Vertical)
  29.         ScrollBar({ scroller: this.scroller, direction: ScrollBarDirection.Vertical,state: BarState.Auto }) {
  30.           Text()
  31.             .width(20)
  32.             .height(100)
  33.             .borderRadius(10)
  34.             .backgroundColor('#C0C0C0')
  35.         }.width(20).backgroundColor('#ededed')
  36.       }
  37.     }
  38.   }
  39. }
复制代码

滑动条组件

项目开辟中可能会有设置装备音量大小,调节屏幕亮度等需求,实现类似需求一样平常都会使用到滑动条,ArkUI开辟框架提供了滑动组件 Slider 
滑动条组件,通常用于快速调节设置值,如音量调节、亮度调节等应用场景。
阐明
该组件从API Version 7开始支持。后续版本如有新增内容,则接纳上角标单独标志该内容的起始版本。
子组件


接口

Slider(options?: {value?: number, min?: number, max?: number, step?: number, style?: SliderStyle, direction?: Axis, reverse?: boolean})
从API version 9开始,该接口支持在ArkTS卡片中使用。
参数:
  参数名
  参数类型
  必填
  参数描述
  value
  number
  否
  当前进度值。
默认值:参数min
  min
  number
  否
  设置最小值。
默认值:0
  max
  number
  否
  设置最大值。
默认值:100
阐明:
min >= max异常情况,min取默认值0,max取默认值100。
value不在[min, max]范围之内,取min/max,靠近min取min,靠近max取max。
  step
  number
  否
  设置Slider滑动步长。
默认值:1
取值范围:[0.01, max]
阐明:
设置小于0或百分比的值时,按默认值显示。
  style
  SliderStyle
  否
  设置Slider的滑块与滑轨显示样式。
默认值:SliderStyle.OutSet
  direction8+
  Axis
  否
  设置滑动条滑动方向为水平或竖直方向。
默认值:Axis.Horizontal
  reverse8+
  boolean
  否
  设置滑动条取值范围是否反向,横向Slider默认为从左往右滑动,竖向Slider默认为从上往下滑动。
默认值:false
  SliderStyle罗列阐明

从API version 9开始,该接口支持在ArkTS卡片中使用。
  名称
  描述
  OutSet
  滑块在滑轨上。
  InSet
  滑块在滑轨内。
  属性

支持除触摸热区以外的通用属性设置。
  名称
  参数类型
  描述
  blockColor
  ResourceColor
  设置滑块的颜色。
从API version 9开始,该接口支持在ArkTS卡片中使用。
  trackColor
  ResourceColor
  设置滑轨的配景颜色。
从API version 9开始,该接口支持在ArkTS卡片中使用。
  selectedColor
  ResourceColor
  设置滑轨的已滑动部分颜色。
从API version 9开始,该接口支持在ArkTS卡片中使用。
  showSteps
  boolean
  设置当前是否显示步长刻度值。
默认值:false
从API version 9开始,该接口支持在ArkTS卡片中使用。
  showTips
  boolean
  设置滑动时是否显示百分比气泡提示。
默认值:false
从API version 9开始,该接口支持在ArkTS卡片中使用。
阐明:
当direction的属性值为Axis.Horizontal时,tip显示在滑块正上方。值为Axis.Vertical时,tip显示在滑块正左边。
tip的绘制区域为Slider自身节点的overlay。
Slider不设置边距,或者边距比较小时,tip会被截断。
  trackThickness
  Length
  设置滑轨的粗细。
默认值:当参数style的值设置SliderStyle.OutSet 时为 4.0vp,SliderStyle.InSet时为20.0vp。
从APIversion9开始,该接口支持在ArkTS卡片中使用。
阐明:
设置为小于0的值时,按默认值显示。
  事件

通用事件仅支持挂载卸载事件:OnAppear,OnDisAppear。
  名称
  功能描述
  onChange(callback: (value: number, mode: SliderChangeMode) => void)
  Slider滑动时触发事件回调。
value:当前滑动进度值。若返回值有小数,可使用number.toFixed()方法将数据处理为预期的精度。
mode:拖动状态。
从API version 9开始,该接口支持在ArkTS卡片中使用。
阐明:Begin和End状态当手势点击时都会触发,Moving和Click状态当value值发生变换时触发。
当连贯动作为拖动动作时,不触发Click状态。
value值的变化范围为对应步长steps数组。
  SliderChangeMode罗列阐明

从API version 9开始,该接口支持在ArkTS卡片中使用。
  名称
  值
  描述
  Begin
  0
  手势/鼠标打仗或者按下滑块。
  Moving
  1
  正在拖动滑块过程中。
  End
  2
  手势/鼠标离开滑块。
  Click
  3
  点击滑动条使滑块位置移动。
  
Slider定义介绍

  1. interface SliderInterface {
  2.   (options?: SliderOptions): SliderAttribute;
  3. }
  4. // 配置参数
  5. declare interface SliderOptions {
  6.   value?: number;
  7.   min?: number;
  8.   max?: number;
  9.   step?: number;
  10.   style?: SliderStyle;
  11.   direction?: Axis;
  12.   reverse?: boolean;
  13. }
复制代码


  • options:Slider 接收一个 SliderOptions 类型的可选参数 options ,SliderOptions 参数阐明如下:

    • value:滑动条当前进度值。
    • min:设置滑动条设置最小值。
    • max:设置滑动条设置最大值,默认为 100 。
    • step:设置滑动条滑动跳动值,当设置相应的 step 时,Slider为间歇滑动。
    • style:设置滑动条的滑块样式。
    • direction:设置滑动条滑动方向为水平或竖直方向。
    • reverse:设置滑动条取值范围是否反向。

简朴样例如下所示:
  1. @Entry @Component struct Index {
  2.   build() {
  3.     Column({space: 10}) {
  4.       Slider({
  5.         value: 20,
  6.         min: 0,
  7.         max: 100,
  8.         step: 1,
  9.         style: SliderStyle.InSet,
  10.         direction: Axis.Horizontal,
  11.         reverse: false
  12.       })
  13.       .width(260)
  14.       .height(60)
  15.       .backgroundColor(Color.Green)
  16.       Slider({
  17.         value: 20,
  18.         min: 0,
  19.         max: 100,
  20.         step: 10,
  21.         style: SliderStyle.OutSet,
  22.         direction: Axis.Horizontal,
  23.         reverse: false
  24.       })
  25.       .width(260)
  26.       .height(60)
  27.       .backgroundColor(Color.Green)
  28.     }
  29.     .padding(10)
  30.     .size({ width: "100%", height: '100%' })
  31.   }
  32. }
复制代码
 

Slider属性介绍

  1. declare class SliderAttribute extends CommonMethod<SliderAttribute> {
  2.   blockColor(value: ResourceColor): SliderAttribute;
  3.   trackColor(value: ResourceColor): SliderAttribute;
  4.   selectedColor(value: ResourceColor): SliderAttribute;
  5.   minLabel(value: string): SliderAttribute;
  6.   maxLabel(value: string): SliderAttribute;
  7.   showSteps(value: boolean): SliderAttribute;
  8.   showTips(value: boolean): SliderAttribute;
  9.   trackThickness(value: Length): SliderAttribute;
  10. }
复制代码


  • blockColor:设置滑块的颜色。
  • trackColor:设置滑轨的配景颜色。
  • selectedColor:设置滑轨的已滑动颜色。
    简朴样例代码如下所示:
    1. Slider({
    2.   value: 20,
    3.   min: 0,
    4.   max: 100,
    5.   step: 1,
    6.   style: SliderStyle.OutSet,
    7.   direction: Axis.Horizontal,
    8.   reverse: false
    9. })
    10. .width(260)
    11. .height(40)
    12. .backgroundColor("#ccc")
    13. Slider({
    14.   value: 20,
    15.   min: 0,
    16.   max: 100,
    17.   step: 10,
    18.   style: SliderStyle.OutSet,
    19.   direction: Axis.Horizontal,
    20.   reverse: false
    21. })
    22. .width(260)
    23. .height(40)
    24. .backgroundColor("#aabbcc")
    25. .blockColor(Color.Green)    // 设置滑块颜色
    26. .trackColor(Color.Blue)   // 设置滑轨颜色
    27. .selectedColor(Color.Yellow) // 设置滑轨的已滑动颜色
    复制代码
    样例运行效果如下图所示:



  • minLabel:设置滑动条最小值处的标签。
  • maxLabel:设置滑动条最大值处的标签。
简朴样例如下所示:
  1. Slider({
  2.   value: 20,
  3.   min: 0,
  4.   max: 100,
  5.   step: 1,
  6.   style: SliderStyle.OutSet,
  7.   direction: Axis.Horizontal,
  8.   reverse: false
  9. })
  10. .width(260)
  11. .height(40)
  12. .backgroundColor("#ccc")
  13. Slider({
  14.   value: 20,
  15.   min: 0,
  16.   max: 100,
  17.   step: 10,
  18.   style: SliderStyle.OutSet,
  19.   direction: Axis.Horizontal,
  20.   reverse: false
  21. })
  22. .width(260)
  23. .height(40)
  24. .backgroundColor("#aabbcc")
  25. .blockColor(Color.Yellow)    // 设置滑块颜色
  26. .trackColor(Color.Pink)   // 设置滑轨颜色
  27. .selectedColor(Color.Green) // 设置滑轨的已滑动颜色
  28. //.minLabel("最小值")        // 设置最小值标签
  29. //.maxLabel("最大值")        // 设置最大值标签
复制代码
样例运行效果如下图所示:



  • showSteps:设置当前是否显示步长刻度值。
  • showTips:设置滑动时是否显示气泡提示百分比。
  • trackThickness:设置滑动条粗细
  1. @Entry @Component struct Index {
  2.   build() {
  3.     Column({ space: 10 }) {
  4.       Slider({
  5.         value: 20,
  6.         min: 0,
  7.         max: 100,
  8.         step: 1,
  9.         style: SliderStyle.OutSet,
  10.         direction: Axis.Horizontal,
  11.         reverse: false
  12.       })
  13.         .width(260)
  14.         .height(40)
  15.         .backgroundColor("#ccc")
  16.       Slider({
  17.         value: 20,
  18.         min: 0,
  19.         max: 0,
  20.         step: 10,
  21.         style: SliderStyle.OutSet,
  22.         direction: Axis.Horizontal,
  23.         reverse: false
  24.       })
  25.         .width(260)
  26.         .height(40)
  27.         .backgroundColor("#aabbcc")
  28.         .blockColor(Color.Yellow)    // 设置滑块颜色
  29.         .trackColor(Color.Pink)   // 设置滑轨颜色
  30.         .selectedColor(Color.Green) // 设置滑轨的已滑动颜色
  31.         // .minLabel("最小值")        // 设置最小值标签
  32.         // .maxLabel("最大值")        // 设置最大值标签
  33.         .showSteps(true)          // 设置显示步长
  34.         .showTips(true)           // 设置显示进度
  35.         .trackThickness(5)        // 设置滚动条宽度
  36.     }
  37.   }
  38.   }
复制代码
简朴样例如下所示:

Slider事件介绍

  1. declare class SliderAttribute extends CommonMethod<SliderAttribute> {
  2.   onChange(callback: (value: number, mode: SliderChangeMode) => void): SliderAttribute;
  3. }
复制代码


  • onChange:滑动条滑动时触发事件回调,value 表现当前进度值;mode 表现滑动条的拖动状态,SliderChangeMode 定义了以下 3 种类型:

    • Begin:用户开始拖动滑块。
    • Moving:用户拖动滑块中。
    • End:用户结束拖动滑块。

完备案例

  1. @Entry
  2. @Component
  3. struct SliderTest {
  4.   @State outSetValue: number = 40
  5.   @State inSetValue: number = 40
  6.   @State outVerticalSetValue: number = 40
  7.   @State inVerticalSetValue: number = 40
  8.   build() {
  9.     Column({ space: 10 }) {
  10.       Row() {
  11.         Slider({
  12.           value: this.outSetValue,
  13.           min: 0,
  14.           max: 100,
  15.           step: 1,
  16.           style: SliderStyle.OutSet
  17.         })
  18.           .blockColor(Color.Green)
  19.           .selectedColor(Color.Gray)
  20.           .trackColor(Color.Brown)
  21.           .showSteps(true)
  22.           .showTips(true)
  23.           .trackThickness(4)
  24.           .onChange((value: number, mode: SliderChangeMode) => {
  25.             this.outSetValue = value
  26.           })
  27.         Text(this.outSetValue.toFixed(0))
  28.           .fontSize(16)
  29.       }
  30.       .padding({ top: 50 })
  31.       .width('80%')
  32.       Row() {
  33.         Slider({
  34.           value: this.inSetValue,
  35.           min: 0,
  36.           max: 100,
  37.           step: 1,
  38.           style: SliderStyle.InSet
  39.         })
  40.           .blockColor(0xCCCCCC)
  41.           .trackColor(Color.Black)
  42.           .trackThickness(10)
  43.           .selectedColor(0xCCCCCC)
  44.           .showSteps(false)
  45.           .showTips(false)
  46.           .onChange((value: number, mode: SliderChangeMode) => {
  47.             this.inSetValue = value
  48.           })
  49.         Text(this.inSetValue.toFixed(0))
  50.           .fontSize(16)
  51.       }
  52.       .width('80%')
  53.       Row() {
  54.         Column() {
  55.           Slider({
  56.             value: this.outVerticalSetValue,
  57.             min: 0,
  58.             max: 80,
  59.             step: 1,
  60.             style: SliderStyle.OutSet,
  61.             direction: Axis.Vertical
  62.           })
  63.             .blockColor(Color.Blue)
  64.             .trackColor(Color.Gray)
  65.             .selectedColor(Color.Blue)
  66.             .trackThickness(5)
  67.             .showSteps(true)
  68.             .showTips(true)
  69.             .onChange((value: number, mode: SliderChangeMode) => {
  70.               this.outVerticalSetValue = value
  71.             })
  72.           Text(this.outVerticalSetValue.toFixed(0))
  73.             .fontSize(16)
  74.         }.width('50%').height(300)
  75.         Column() {
  76.           Slider({
  77.             value: this.inVerticalSetValue,
  78.             min: 0,
  79.             max: 90,
  80.             step: 1,
  81.             style: SliderStyle.InSet,
  82.             direction: Axis.Vertical
  83.           })
  84.             .blockColor(Color.Yellow)
  85.             .trackColor(Color.Red)
  86.             .selectedColor(Color.Green)
  87.             .showSteps(false)
  88.             .showTips(false)
  89.             .trackThickness(10)
  90.             .onChange((value: number, mode: SliderChangeMode) => {
  91.               this.inVerticalSetValue = value
  92.             })
  93.           Text(this.inVerticalSetValue.toFixed(0))
  94.             .fontSize(16)
  95.         }.width('50%').height(300)
  96.       }
  97.     }.width('100%').margin({ top: 5 })
  98.   }
  99. }
复制代码



官方案例:

  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct SliderExample {
  5.   @State outSetValueOne: number = 40
  6.   @State inSetValueOne: number = 40
  7.   @State outSetValueTwo: number = 40
  8.   @State inSetValueTwo: number = 40
  9.   @State vOutSetValueOne: number = 40
  10.   @State vInSetValueOne: number = 40
  11.   @State vOutSetValueTwo: number = 40
  12.   @State vInSetValueTwo: number = 40
  13.   build() {
  14.     Column({ space: 8 }) {
  15.       Text('outset slider').fontSize(9).fontColor(0xCCCCCC).width('90%').margin(15)
  16.       Row() {
  17.         Slider({
  18.           value: this.outSetValueOne,
  19.           min: 0,
  20.           max: 100,
  21.           style: SliderStyle.OutSet
  22.         })
  23.           .showTips(true)
  24.           .onChange((value: number, mode: SliderChangeMode) => {
  25.             this.outSetValueOne = value
  26.             console.info('value:' + value + 'mode:' + mode.toString())
  27.           })
  28.         // toFixed(0)将滑动条返回值处理为整数精度
  29.         Text(this.outSetValueOne.toFixed(0)).fontSize(12)
  30.       }
  31.       .width('80%')
  32.       Row() {
  33.         Slider({
  34.           value: this.outSetValueTwo,
  35.           step: 10,
  36.           style: SliderStyle.OutSet
  37.         })
  38.           .showSteps(true)
  39.           .onChange((value: number, mode: SliderChangeMode) => {
  40.             this.outSetValueTwo = value
  41.             console.info('value:' + value + 'mode:' + mode.toString())
  42.           })
  43.         Text(this.outSetValueTwo.toFixed(0)).fontSize(12)
  44.       }
  45.       .width('80%')
  46.       Text('inset slider').fontSize(9).fontColor(0xCCCCCC).width('90%').margin(15)
  47.       Row() {
  48.         Slider({
  49.           value: this.inSetValueOne,
  50.           min: 0,
  51.           max: 100,
  52.           style: SliderStyle.InSet
  53.         })
  54.           .blockColor('#191970')
  55.           .trackColor('#ADD8E6')
  56.           .selectedColor('#4169E1')
  57.           .showTips(true)
  58.           .onChange((value: number, mode: SliderChangeMode) => {
  59.             this.inSetValueOne = value
  60.             console.info('value:' + value + 'mode:' + mode.toString())
  61.           })
  62.         Text(this.inSetValueOne.toFixed(0)).fontSize(12)
  63.       }
  64.       .width('80%')
  65.       Row() {
  66.         Slider({
  67.           value: this.inSetValueTwo,
  68.           step: 10,
  69.           style: SliderStyle.InSet
  70.         })
  71.           .blockColor('#191970')
  72.           .trackColor('#ADD8E6')
  73.           .selectedColor('#4169E1')
  74.           .showSteps(true)
  75.           .onChange((value: number, mode: SliderChangeMode) => {
  76.             this.inSetValueTwo = value
  77.             console.info('value:' + value + 'mode:' + mode.toString())
  78.           })
  79.         Text(this.inSetValueTwo.toFixed(0)).fontSize(12)
  80.       }
  81.       .width('80%')
  82.       Row() {
  83.         Column() {
  84.           Text('vertical outset slider').fontSize(9).fontColor(0xCCCCCC).width('50%').margin(15)
  85.           Row() {
  86.             Slider({
  87.               value: this.vOutSetValueOne,
  88.               style: SliderStyle.OutSet,
  89.               direction: Axis.Vertical
  90.             })
  91.               .blockColor('#191970')
  92.               .trackColor('#ADD8E6')
  93.               .selectedColor('#4169E1')
  94.               .showTips(true)
  95.               .onChange((value: number, mode: SliderChangeMode) => {
  96.                 this.vOutSetValueOne = value
  97.                 console.info('value:' + value + 'mode:' + mode.toString())
  98.               })
  99.             Slider({
  100.               value: this.vOutSetValueTwo,
  101.               step: 10,
  102.               style: SliderStyle.OutSet,
  103.               direction: Axis.Vertical
  104.             })
  105.               .blockColor('#191970')
  106.               .trackColor('#ADD8E6')
  107.               .selectedColor('#4169E1')
  108.               .showSteps(true)
  109.               .onChange((value: number, mode: SliderChangeMode) => {
  110.                 this.vOutSetValueTwo = value
  111.                 console.info('value:' + value + 'mode:' + mode.toString())
  112.               })
  113.           }
  114.         }.width('50%').height(300)
  115.         Column() {
  116.           Text('vertical inset slider').fontSize(9).fontColor(0xCCCCCC).width('50%').margin(15)
  117.           Row() {
  118.             Slider({
  119.               value: this.vInSetValueOne,
  120.               style: SliderStyle.InSet,
  121.               direction: Axis.Vertical,
  122.               reverse: true // 竖向的Slider默认是上端是min值,下端是max值,因此想要从下往上滑动,需要设置reverse为true
  123.             })
  124.               .showTips(true)
  125.               .onChange((value: number, mode: SliderChangeMode) => {
  126.                 this.vInSetValueOne = value
  127.                 console.info('value:' + value + 'mode:' + mode.toString())
  128.               })
  129.             Slider({
  130.               value: this.vInSetValueTwo,
  131.               step: 10,
  132.               style: SliderStyle.InSet,
  133.               direction: Axis.Vertical,
  134.               reverse: true
  135.             })
  136.               .showSteps(true)
  137.               .onChange((value: number, mode: SliderChangeMode) => {
  138.                 this.vInSetValueTwo = value
  139.                 console.info('value:' + value + 'mode:' + mode.toString())
  140.               })
  141.           }
  142.         }.width('50%').height(300)
  143.       }
  144.     }.width('100%')
  145.   }
  146. }
复制代码


多选框组件

Checkbox

提供多选框组件,通常用于某选项的打开或关闭。
阐明
该组件从API Version 8开始支持。后续版本如有新增内容,则接纳上角标单独标志该内容的起始版本。
子组件


接口

Checkbox(options?: {name?: string, group?: string })
从API version 9开始,该接口支持在ArkTS卡片中使用。
参数:
  参数名
  参数类型
  必填
  参数描述
  name
  string
  否
  多选框名称。
  group
  string
  否
  多选框的群组名称。
阐明:
未共同使用CheckboxGroup组件时,此值无用。
  属性

除支持通用属性外,还支持以下属性:
  名称
  参数类型
  描述
  select
  boolean
  设置多选框是否选中。
默认值:false
从API version 9开始,该接口支持在ArkTS卡片中使用。
  selectedColor
  ResourceColor
  设置多选框选中状态颜色。
从API version 9开始,该接口支持在ArkTS卡片中使用。
  事件

支持通用事件外,还支持以下事件:
  名称
  功能描述
  onChange(callback: (value: boolean) => void)
  当选中状态发生变化时,触发该回调。
- value为true时,表现已选中。
- value为false时,表现未选中。
从API version 9开始,该接口支持在ArkTS卡片中使用。
  示例

  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct CheckboxExample {
  5.   build() {
  6.     Row() {
  7.       Checkbox({name: 'checkbox1',  group: 'checkboxGroup'})
  8.         .select(true)
  9.         .selectedColor(0xed6f21)
  10.         .onChange((value: boolean) => {
  11.           console.info('Checkbox1 change is'+ value)
  12.         })
  13.       Checkbox({name: 'checkbox2',  group: 'checkboxGroup'})
  14.         .select(false)
  15.         .selectedColor(0x39a2db)
  16.         .onChange((value: boolean) => {
  17.           console.info('Checkbox2 change is'+ value)
  18.         })
  19.     }
  20.   }
  21. }
复制代码


 多选框群组组件

CheckboxGroup

多选框群组,用于控制多选框全选或者不全选状态。
阐明
该组件从API Version 8开始支持。后续版本如有新增内容,则接纳上角标单独标志该内容的起始版本。
子组件


接口

CheckboxGroup(options?: { group?: string })
创建多选框群组,可以控制群组内的Checkbox全选或者不全选,group值相同的Checkbox和CheckboxGroup为同一群组。
从API version 9开始,该接口支持在ArkTS卡片中使用。
参数:
  参数名
  参数类型
  必填
  参数描述
  group
  string
  否
  群组名称。
阐明:
多个相同群组名称的CheckboxGroup,仅第一个CheckboxGroup生效。
  属性

除支持通用属性外,还支持以下属性:
  名称
  参数类型
  描述
  selectAll
  boolean
  设置是否全选。
默认值:false,若同组的Checkbox显式设置select,则Checkbox的优先级高。
从API version 9开始,该接口支持在ArkTS卡片中使用。
  selectedColor
  ResourceColor
  设置被选中或部分选中状态的颜色。
从API version 9开始,该接口支持在ArkTS卡片中使用。
  事件

除支持通用事件外,还支持以下事件:
  名称
  功能描述
  onChange (callback: (event: CheckboxGroupResult) => void )
  CheckboxGroup的选中状态或群组内的Checkbox的选中状态发生变化时,触发回调。
从API version 9开始,该接口支持在ArkTS卡片中使用。
  CheckboxGroupResult对象阐明

从API version 9开始,该接口支持在ArkTS卡片中使用。
  名称
  类型
  描述
  name
  Array<string>
  群组内全部被选中的多选框名称。
  status
  SelectStatus
  选中状态。
  SelectStatus罗列阐明

从API version 9开始,该接口支持在ArkTS卡片中使用。
  名称
  描述
  All
  群组多选择框全部选择。
  Part
  群组多选择框部分选择。
  None
  群组多选择框全部没有选择。
  示例

  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct CheckboxExample {
  5.   build() {
  6.     Scroll() {
  7.       Column() {
  8.         // 全选按钮
  9.         Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
  10.           CheckboxGroup({ group: 'checkboxGroup' })
  11.             .selectedColor('#007DFF')
  12.             .onChange((itemName: CheckboxGroupResult) => {
  13.               console.info("checkbox group content" + JSON.stringify(itemName))
  14.             })
  15.           Text('Select All').fontSize(14).lineHeight(20).fontColor('#182431').fontWeight(500)
  16.         }
  17.         // 选项1
  18.         Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
  19.           Checkbox({ name: 'checkbox1', group: 'checkboxGroup' })
  20.             .selectedColor('#007DFF')
  21.             .onChange((value: boolean) => {
  22.               console.info('Checkbox1 change is' + value)
  23.             })
  24.           Text('Checkbox1').fontSize(14).lineHeight(20).fontColor('#182431').fontWeight(500)
  25.         }.margin({ left: 36 })
  26.         // 选项2
  27.         Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
  28.           Checkbox({ name: 'checkbox2', group: 'checkboxGroup' })
  29.             .selectedColor('#007DFF')
  30.             .onChange((value: boolean) => {
  31.               console.info('Checkbox2 change is' + value)
  32.             })
  33.           Text('Checkbox2').fontSize(14).lineHeight(20).fontColor('#182431').fontWeight(500)
  34.         }.margin({ left: 36 })
  35.         // 选项3
  36.         Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center }) {
  37.           Checkbox({ name: 'checkbox3', group: 'checkboxGroup' })
  38.             .selectedColor('#007DFF')
  39.             .onChange((value: boolean) => {
  40.               console.info('Checkbox3 change is' + value)
  41.             })
  42.           Text('Checkbox3').fontSize(14).lineHeight(20).fontColor('#182431').fontWeight(500)
  43.         }.margin({ left: 36 })
  44.       }
  45.     }
  46.   }
  47. }
复制代码




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

飞不高

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表