HarmonyOS NEXT实战:滑动条

##HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##

目标:实现横向和竖向滑动条

Slider滑动条组件,通常用于快速调节设置值,如音量调节、亮度调节等应用场景。

知识点: SliderOptions对象属性

  • value:当前进度值。默认值:与参数min的取值一致。从API version 10开始,该参数支持$$双向绑定变量。取值范围: [min, max]。小于min时取min,大于max时取max。
  • min:设置最小值。默认值:0
  • max:设置最大值。默认值:100。说明:min >= max异常情况,min取默认值0,max取默认值100。value不在[min, max]范围之内,取min或者max,靠近min取min,靠近max取max。
  • step:设置Slider滑动步长。默认值:1。取值范围:[0.01, max - min]。说明:若设置的step值小于0或大于max值时,则按默认值显示。
  • style:设置Slider的滑块与滑轨显示样式。默认值:SliderStyle.OutSet
  • direction:设置滑动条滑动方向为水平或竖直方向。默认值:Axis.Horizontal
  • reverse:设置滑动条取值范围是否反向。默认值:false。值为true时,横向Slider从右往左滑动,竖向Slider从下往上滑动。值为false时,横向Slider从左往右滑动,竖向Slider从上往下滑动

组件属性

blockColor(value: ResourceColor)

设置滑块的颜色。默认值:$r('sys.color.ohos_id_color_foreground_contrary')

  • 当滑块形状设置为SliderBlockType.DEFAULT时,blockColor可设置默认圆形滑块颜色。
  • 当滑块形状设置为SliderBlockType.IMAGE时,滑块无填充,设置blockColor不生效。
  • 当滑块形状设置为SliderBlockType.SHAPE时,blockColor可设置自定义形状的填充颜色。
trackColor(value: ResourceColor | LinearGradient)

设置滑轨的背景颜色。说明: 设置渐变色时,若颜色断点颜色值为非法值或者渐变色断点为空时,渐变色不起效果。默认值:$r('sys.color.ohos_id_color_component_normal')。该接口中的LinearGradient类型不支持在元服务中使用。

selectedColor(value: ResourceColor)

设置滑轨的已滑动部分颜色。默认值:$r('sys.color.ohos_id_color_emphasize')

showSteps(value: boolean)

设置当前是否显示步长刻度值。值为true时显示刻度值,值为false时不显示刻度值。默认值:false

实战:SliderPage

@Entry
@Component
struct SliderPage {
  @State outSetValueOne: number = 40
  @State vInSetValueOne: number = 40

  build() {
    Column({ space: 10 }) {
      Text('Slider实战')
      Text('横向滑动条')
      Row() {
        Slider({
          value: this.outSetValueOne,
          min: 0,
          max: 100,
          style: SliderStyle.OutSet
        })
          .showTips(true)
          .onChange((value: number, mode: SliderChangeMode) => {
            this.outSetValueOne = value
            console.info('value:' + value + 'mode:' + mode.toString())
          })
        // toFixed(0)将滑动条返回值处理为整数精度
        Text(this.outSetValueOne.toFixed(0)).fontSize(12)
      }
      .width('80%')

      Text('竖向滑动条')
      Slider({
        value: this.vInSetValueOne,
        style: SliderStyle.InSet,
        direction: Axis.Vertical,
        reverse: true // 竖向的Slider默认是上端是min值,下端是max值,因此想要从下往上滑动,需要设置reverse为true
      })
        .showTips(true)
        .height(300)
        .onChange((value: number, mode: SliderChangeMode) => {
          this.vInSetValueOne = value
          console.info('value:' + value + 'mode:' + mode.toString())
        })
    }.width('100%')
  }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 12:10
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 12:11
点赞 评论 收藏
分享
Yki_:你要算时间成本呀,研究生两三年,博士三四年,加起来就五六年了,如果你本科去腾讯干五年,多领五年的年薪,加上公司内涨薪,可能到时候十五年总薪资也跟博士差不多
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 11:00
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务