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

[复制链接]
发表于 2025-12-29 23:19:55 | 显示全部楼层 |阅读模式
本篇将带你实现一个滑动选择器应用,用户可以通过滑动条选择差异的数值,并实时检察选定的值和提示。这是一个学习怎样使用 Slider 组件、状态管理和动态文本更新的精良实践。


关键词



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

一、功能阐明

在这个滑动选择器应用中,用户通过滑动条选择值,应用实时更新并体现当前选择的值。根据差异的数值范围,文本提示会变革,增长交互结果。

二、所需组件



  • @Entry 和 @Component 装饰器
  • Column 和 Row 布局组件
  • Text 组件用于体现文本
  • Slider 组件用于滑动选择
  • @State 修饰符用于状态管理
项目布局



  • 项目名称:SliderSelectorApp
  • 自界说组件名称:SliderSelectorPage
  • 代码文件:SliderSelectorPage.ets、Index.ets

三、代码实现

  1. // 文件名:SliderSelectorPage.ets
  2. // 定义滑动选择器页面组件
  3. @Component
  4. export struct SliderSelectorPage {
  5.   // 定义一个状态变量 selectedValue,用 @State 修饰符管理其状态变化
  6.   @State selectedValue: number = 50; // 初始值设为 50
  7.   // build() 方法构建页面布局和组件
  8.   build() {
  9.     Column({ space: 20 }) { // 创建垂直布局容器,子组件之间的间距为 20
  10.       // 显示当前选择的数值
  11.       Row() {
  12.         Text(`当前选择的值: ${this.selectedValue}`) // 显示选定的值
  13.           .fontSize(24) // 设置字体大小
  14.           .fontWeight(FontWeight.Bold) // 设置字体为粗体
  15.           .alignSelf(ItemAlign.Center) // 水平居中对齐
  16.           .fontColor(Color.Black); // 设置文本颜色为黑色
  17.       }
  18.       // 滑动选择器组件
  19.       Slider({ min: 0, max: 100, value: this.selectedValue }) // 创建滑动选择器,范围为 0-100
  20.         .onChange((value: number) => { // 滑动时触发事件
  21.           this.selectedValue = value; // 更新选定的值
  22.         })
  23.         .blockColor(Color.Blue) // 设置滑块颜色
  24.         .trackColor(Color.Gray) // 设置滑动条背景颜色
  25.         .width('80%') // 设置宽度为 80%
  26.         .alignSelf(ItemAlign.Center); // 水平居中对齐
  27.       // 动态显示提示文本,根据选定的值显示不同的提示和颜色
  28.       Row() {
  29.         Text(this.getFeedbackMessage()) // 获取反馈文本
  30.           .fontSize(18) // 设置字体大小
  31.           .alignSelf(ItemAlign.Center) // 水平居中对齐
  32.           .fontColor(this.getFeedbackColor()); // 设置文本颜色
  33.       }
  34.     }
  35.     .padding(20) // 设置内边距
  36.     .width('100%') // 设置容器宽度为 100%
  37.     .height('100%') // 设置容器高度为 100%
  38.     .alignItems(HorizontalAlign.Center); // 垂直居中对齐
  39.   }
  40.   // 根据当前值返回不同的提示信息
  41.   private getFeedbackMessage(): string {
  42.     if (this.selectedValue > 75) {
  43.       return '高值选择';
  44.     } else if (this.selectedValue < 25) {
  45.       return '低值选择';
  46.     } else {
  47.       return '中间值';
  48.     }
  49.   }
  50.   // 根据当前值返回不同的文本颜色
  51.   private getFeedbackColor(): Color {
  52.     if (this.selectedValue > 75) {
  53.       return Color.Red; // 返回红色
  54.     } else if (this.selectedValue < 25) {
  55.       return Color.Blue; // 返回蓝色
  56.     } else {
  57.       return Color.Green; // 返回绿色
  58.     }
  59.   }
  60. }
复制代码
  1. // 文件名:Index.ets
  2. // 导入滑动选择器页面组件
  3. import { SliderSelectorPage } from './SliderSelectorPage'
  4. // 定义应用入口组件
  5. @Entry
  6. @Component
  7. struct Index {
  8.   // build() 方法构建页面布局和组件
  9.   build() {
  10.     Column() {
  11.       SliderSelectorPage() // 引用自定义的滑动选择器组件
  12.     }
  13.     .padding(20) // 设置页面内边距
  14.   }
  15. }
复制代码
  结果示例:用户拖动滑动条时,选定的值会实时更新并体现。根据值的范围,文本提示内容和颜色会动态变革。
  

  
四、代码解读



  • @State selectedValue
    界说一个状态变量,用于生存当前滑动条的值。状态变革时,UI 会主动革新。
  • Slider 组件
    实现滑动选择功能,并通过 onChange 变乱更新 selectedValue。
  • getFeedbackMessage() 和 getFeedbackColor() 方法
    根据 selectedValue 返回差异的提示文本和颜色,实现动态反馈。

五、优化发起


  • 自界说滑动条样式:通过 blockColor 和 trackColor 自界说滑动条的表面,提升视觉结果。
  • 添加最小和最大值标签:在滑动条的两头添加文本标签,如“0”和“100”。
  • 滑动动画:为滑动条添加动画过渡,使用户体验更流畅。
  • 多语言支持:根据用户的语言环境体现差异语言的提示文本。

六、相干知识点



  • 「Mac畅玩鸿蒙与硬件15」鸿蒙UI组件篇5 - Slider和Progress组件
  • 「Mac畅玩鸿蒙与硬件11」鸿蒙UI组件篇1 - Text和Button组件详解

小结

本篇教程通过滑动选择器应用的实现,你学会了怎样使用 Slider 组件来实现动态数值选择和体现。这为开辟更复杂的交互式应用打下了底子。

下一篇预报

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

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

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


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


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表