「Mac畅玩鸿蒙与硬件28」UI互动应用篇5 - 滑动选择器实现

简介: 本篇将带你实现一个滑动选择器应用,用户可以通过滑动条选择不同的数值,并实时查看选定的值和提示。这是一个学习如何使用 Slider 组件、状态管理和动态文本更新的良好实践。

本篇将带你实现一个滑动选择器应用,用户可以通过滑动条选择不同的数值,并实时查看选定的值和提示。这是一个学习如何使用 Slider 组件、状态管理和动态文本更新的良好实践。

20241105_000144.gif


关键词
  • UI互动应用
  • Slider 组件
  • 状态管理
  • 动态数值更新
  • 用户交互

一、功能说明

在这个滑动选择器应用中,用户通过滑动条选择值,应用实时更新并显示当前选择的值。根据不同的数值范围,文本提示会变化,增加交互效果。


二、所需组件

  • @Entry@Component 装饰器
  • ColumnRow 布局组件
  • Text 组件用于显示文本
  • Slider 组件用于滑动选择
  • @State 修饰符用于状态管理

项目结构

  • 项目名称SliderSelectorApp
  • 自定义组件名称SliderSelectorPage
  • 代码文件SliderSelectorPage.etsIndex.ets

三、代码实现

// 文件名:SliderSelectorPage.ets

// 定义滑动选择器页面组件
@Component
export struct SliderSelectorPage {
   
  // 定义一个状态变量 selectedValue,用 @State 修饰符管理其状态变化
  @State selectedValue: number = 50; // 初始值设为 50

  // build() 方法构建页面布局和组件
  build() {
   
    Column({
    space: 20 }) {
    // 创建垂直布局容器,子组件之间的间距为 20
      // 显示当前选择的数值
      Row() {
   
        Text(`当前选择的值: ${
     this.selectedValue}`) // 显示选定的值
          .fontSize(24) // 设置字体大小
          .fontWeight(FontWeight.Bold) // 设置字体为粗体
          .alignSelf(ItemAlign.Center) // 水平居中对齐
          .fontColor(Color.Black); // 设置文本颜色为黑色
      }

      // 滑动选择器组件
      Slider({
    min: 0, max: 100, value: this.selectedValue }) // 创建滑动选择器,范围为 0-100
        .onChange((value: number) => {
    // 滑动时触发事件
          this.selectedValue = value; // 更新选定的值
        })
        .blockColor(Color.Blue) // 设置滑块颜色
        .trackColor(Color.Gray) // 设置滑动条背景颜色
        .width('80%') // 设置宽度为 80%
        .alignSelf(ItemAlign.Center); // 水平居中对齐

      // 动态显示提示文本,根据选定的值显示不同的提示和颜色
      Row() {
   
        Text(this.getFeedbackMessage()) // 获取反馈文本
          .fontSize(18) // 设置字体大小
          .alignSelf(ItemAlign.Center) // 水平居中对齐
          .fontColor(this.getFeedbackColor()); // 设置文本颜色
      }
    }
    .padding(20) // 设置内边距
    .width('100%') // 设置容器宽度为 100%
    .height('100%') // 设置容器高度为 100%
    .alignItems(HorizontalAlign.Center); // 垂直居中对齐
  }

  // 根据当前值返回不同的提示信息
  private getFeedbackMessage(): string {
   
    if (this.selectedValue > 75) {
   
      return '高值选择';
    } else if (this.selectedValue < 25) {
   
      return '低值选择';
    } else {
   
      return '中间值';
    }
  }

  // 根据当前值返回不同的文本颜色
  private getFeedbackColor(): Color {
   
    if (this.selectedValue > 75) {
   
      return Color.Red; // 返回红色
    } else if (this.selectedValue < 25) {
   
      return Color.Blue; // 返回蓝色
    } else {
   
      return Color.Green; // 返回绿色
    }
  }
}
// 文件名:Index.ets

// 导入滑动选择器页面组件
import {
    SliderSelectorPage } from './SliderSelectorPage'

// 定义应用入口组件
@Entry
@Component
struct Index {
   
  // build() 方法构建页面布局和组件
  build() {
   
    Column() {
   
      SliderSelectorPage() // 引用自定义的滑动选择器组件
    }
    .padding(20) // 设置页面内边距
  }
}

效果示例:用户拖动滑动条时,选定的值会实时更新并显示。根据值的范围,文本提示内容和颜色会动态变化。

20241105_000144.gif


四、代码解读

  • @State selectedValue
    定义一个状态变量,用于保存当前滑动条的值。状态变化时,UI 会自动刷新。
  • Slider 组件
    实现滑动选择功能,并通过 onChange 事件更新 selectedValue
  • getFeedbackMessage()getFeedbackColor() 方法
    根据 selectedValue 返回不同的提示文本和颜色,实现动态反馈。

五、优化建议

  1. 自定义滑动条样式:通过 blockColortrackColor 自定义滑动条的外观,提升视觉效果。
  2. 添加最小和最大值标签:在滑动条的两端添加文本标签,如“0”和“100”。
  3. 滑动动画:为滑动条添加动画过渡,使用户体验更流畅。
  4. 多语言支持:根据用户的语言环境显示不同语言的提示文本。

六、相关知识点


小结

本篇教程通过滑动选择器应用的实现,你学会了如何使用 Slider 组件来实现动态数值选择和显示。这为开发更复杂的交互式应用打下了基础。


下一篇预告

下一篇「UI互动应用篇6 - 多选问卷小应用」将展示如何实现用户多选问卷功能,并显示提交后的结果。


上一篇: 「Mac畅玩鸿蒙与硬件27」UI互动应用篇4 - 猫与灯的互动应用

下一篇: 「Mac畅玩鸿蒙与硬件29」UI互动应用篇6 - 多选问卷小应用


作者:SoraLuna
链接:https://www.nutpi.net/thread?topicId=284
來源:坚果派
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


目录
相关文章
|
11天前
「Mac畅玩鸿蒙与硬件51」UI互动应用篇28 - 模拟记账应用
本篇教程将介绍如何创建一个模拟记账应用,通过账单输入、动态列表展示和实时统计功能,学习接口定义和组件间的数据交互。
127 68
|
10天前
|
UED
「Mac畅玩鸿蒙与硬件52」UI互动应用篇29 - 模拟火车票查询系统
本篇教程将实现一个模拟火车票查询系统,通过输入条件筛选车次信息,并展示动态筛选结果,学习事件处理、状态管理和界面展示的综合开发技巧。
44 13
|
9天前
「Mac畅玩鸿蒙与硬件53」UI互动应用篇30 - 打卡提醒小应用
本篇教程将实现一个打卡提醒小应用,通过用户输入时间进行提醒设置,并展示实时提醒状态,实现提醒设置和取消等功能。
41 10
|
12天前
|
存储 人工智能 JavaScript
Harmony OS开发-ArkTS语言速成二
本文介绍了ArkTS基础语法,包括三种基本数据类型(string、number、boolean)和变量的使用。重点讲解了let、const和var的区别,涵盖作用域、变量提升、重新赋值及初始化等方面。期待与你共同进步!
73 47
Harmony OS开发-ArkTS语言速成二
|
15天前
|
API 索引
鸿蒙开发:实现一个超简单的网格拖拽
实现拖拽,最重要的三个方法就是,打开编辑状态editMode,实现onItemDragStart和onItemDrop,设置拖拽移动动画和交换数据,如果想到开启补位动画,还需要实现supportAnimation方法。
71 13
鸿蒙开发:实现一个超简单的网格拖拽
|
14天前
|
索引 API
鸿蒙开发:自定义一个股票代码选择键盘
金融类的软件,特别是股票基金类的应用,在查找股票的时候,都会有一个区别于正常键盘的键盘,也就是股票代码键盘,和普通键盘的区别就是,除了常见的数字之外,也有一些常见的股票代码前缀按钮,方便在查找股票的时候,更加方便的进行检索。
鸿蒙开发:自定义一个股票代码选择键盘
|
14天前
|
API
鸿蒙开发:自定义一个英文键盘
实现方式呢,有很多种,目前采用了比较简单的一种,如果大家采用网格Grid组件实现方式,也是可以的,但是需要考虑每行的边距以及数据,还有最后两行的格子占位问题。
鸿蒙开发:自定义一个英文键盘
|
14天前
|
存储 JSON 数据库
鸿蒙元服务项目实战:备忘录内容编辑开发
富文本内容编辑我们直接使用RichEditor组件即可,最重要的就是参数,value: RichEditorOptions,通过它,我们可以用来设置样式,和获取最后的富文本内容,这一点是很重要的。
鸿蒙元服务项目实战:备忘录内容编辑开发
|
13天前
|
前端开发 API 数据库
鸿蒙开发:异步并发操作
在结合async/await进行使用的时候,有一点需要注意,await关键字必须结合async,这两个是搭配使用的,缺一不可,同步风格在使用的时候,如何获取到错误呢,毕竟没有catch方法,其实,我们可以自己创建try/catch来捕获异常。
鸿蒙开发:异步并发操作
|
13天前
|
API
鸿蒙开发:实现popup弹窗
目前提供了两种方式实现popup弹窗,主推系统实现的方式,几乎能满足我们常见的所有场景,当然了,文章毕竟有限,尽量还是以官网为主。
鸿蒙开发:实现popup弹窗

热门文章

最新文章