「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
來源:坚果派
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


目录
相关文章
|
4天前
「Mac畅玩鸿蒙与硬件47」UI互动应用篇24 - 虚拟音乐控制台
本篇将带你实现一个虚拟音乐控制台。用户可以通过界面控制音乐的播放、暂停、切换歌曲,并查看当前播放的歌曲信息。页面还支持调整音量和动态显示播放进度,是音乐播放器界面开发的基础功能示例。
142 80
|
6天前
|
数据管理 API 调度
鸿蒙HarmonyOS应用开发 | 探索 HarmonyOS Next-从开发到实战掌握 HarmonyOS Next 的分布式能力
HarmonyOS Next 是华为新一代操作系统,专注于分布式技术的深度应用与生态融合。本文通过技术特点、应用场景及实战案例,全面解析其核心技术架构与开发流程。重点介绍分布式软总线2.0、数据管理、任务调度等升级特性,并提供基于 ArkTS 的原生开发支持。通过开发跨设备协同音乐播放应用,展示分布式能力的实际应用,涵盖项目配置、主界面设计、分布式服务实现及部署调试步骤。此外,深入分析分布式数据同步原理、任务调度优化及常见问题解决方案,帮助开发者掌握 HarmonyOS Next 的核心技术和实战技巧。
127 76
鸿蒙HarmonyOS应用开发 | 探索 HarmonyOS Next-从开发到实战掌握 HarmonyOS Next 的分布式能力
|
7天前
「Mac畅玩鸿蒙与硬件46」UI互动应用篇23 - 自定义天气预报组件
本篇将带你实现一个自定义天气预报组件。用户可以通过选择不同城市来获取相应的天气信息,页面会显示当前城市的天气图标、温度及天气描述。这一功能适合用于动态展示天气信息的小型应用。
101 38
|
6天前
|
开发框架 人工智能 安全
鸿蒙HarmonyOS应用开发 | 「鸿蒙技术分享」HarmonyOS NEXT元服务卡片实战体验
HarmonyOS NEXT的发布对华为及整个行业都产生了深远的影响。它不仅展示了华为的技术实力,还敏锐地把握了市场需求。同时,吸引了更多的开发者和合作伙伴加入鸿蒙生态体系,共同推动鸿蒙生态的繁荣发展。
180 20
鸿蒙HarmonyOS应用开发 | 「鸿蒙技术分享」HarmonyOS NEXT元服务卡片实战体验
|
5天前
|
安全 数据安全/隐私保护 UED
HarmonyOS 5.0 (Next)应用开发实战:使用ArkTS构建开箱即用的登录页面【HarmonyOS 5.0(Next)】
### HarmonyOS 5.0(Next)应用开发实战:使用ArkTS构建开箱即用的登录页面 HarmonyOS 5.0(Next)融合了美学与科技,引入“光感美学”设计理念和多设备深度协同功能。本文通过 ArkTS 构建一个简单的登录页面,展示了模块化导入、状态管理、方法封装、声明式UI构建及事件处理等最佳实践。代码实现了一个包含用户名和密码输入框及登录按钮的界面,支持错误提示和页面跳转。
53 14
HarmonyOS 5.0 (Next)应用开发实战:使用ArkTS构建开箱即用的登录页面【HarmonyOS 5.0(Next)】
|
6天前
|
物联网 调度 vr&ar
鸿蒙HarmonyOS应用开发 |鸿蒙技术分享HarmonyOS Next 深度解析:分布式能力与跨设备协作实战
鸿蒙技术分享:HarmonyOS Next 深度解析 随着万物互联时代的到来,华为发布的 HarmonyOS Next 在技术架构和生态体验上实现了重大升级。本文从技术架构、生态优势和开发实践三方面深入探讨其特点,并通过跨设备笔记应用实战案例,展示其强大的分布式能力和多设备协作功能。核心亮点包括新一代微内核架构、统一开发语言 ArkTS 和多模态交互支持。开发者可借助 DevEco Studio 4.0 快速上手,体验高效、灵活的开发过程。 239个字符
156 13
鸿蒙HarmonyOS应用开发 |鸿蒙技术分享HarmonyOS Next 深度解析:分布式能力与跨设备协作实战
|
5天前
|
自然语言处理 搜索推荐 数据安全/隐私保护
鸿蒙登录页面好看的样式设计-HarmonyOS应用开发实战与ArkTS代码解析【HarmonyOS 5.0(Next)】
鸿蒙登录页面设计展示了 HarmonyOS 5.0(Next)的未来美学理念,结合科技与艺术,为用户带来视觉盛宴。该页面使用 ArkTS 开发,支持个性化定制和无缝智能设备连接。代码解析涵盖了声明式 UI、状态管理、事件处理及路由导航等关键概念,帮助开发者快速上手 HarmonyOS 应用开发。通过这段代码,开发者可以了解如何构建交互式界面并实现跨设备协同工作,推动智能生态的发展。
70 10
鸿蒙登录页面好看的样式设计-HarmonyOS应用开发实战与ArkTS代码解析【HarmonyOS 5.0(Next)】
|
5天前
|
人工智能 安全 数据安全/隐私保护
HarmonyOS应用开发实战:基于ArkTS的开箱即用登录页面实现【样式方式实现①】【HarmonyOS 5.0(Next)】
本文介绍了基于HarmonyOS 5.0(Next)和ArkTS实现的开箱即用登录页面。HarmonyOS 5.0是华为于2024年10月22日发布的第三代移动操作系统,具备原生智能、互联、安全及流畅特性。文章详细解析了使用ArkTS开发登录页面的代码,涵盖组件定义、界面布局、事件处理、样式设置及异步操作等内容,展示了清晰的组件结构、响应式设计与模块化编程的优势。通过这段代码,开发者可以快速上手并构建高效、美观的应用界面。
|
3天前
|
安全
【HarmonyOS学习】应用文件访问
访问和管理应用文件,对于每个应用,系统会在内部存储空间映射出一个专属的应用沙箱目录,是应用文件目录与一部分系统文件所在的目录组成的集合。也就是应用可见的目录范围即为“应用沙箱目录”。 优点: * 隔离性:应用沙箱提供了一个完全隔离的环境,使用户可以安全地访问应用文件。 * 安全性:应用沙箱限制了应用可见地数据地最小范围,保护了应用文件地安全。
20 5
|
2天前
|
API UED 开发者
鸿蒙应用 VoIP 通话管理模块使用分享
最近老板突然提出需求,希望用户能在应用中发起语音或视频通话,并支持来电提醒、挂断、静音等功能。虽然任务复杂,但可以利用鸿蒙的voipCall模块实现这些需求。该模块提供VoIP通话管理功能,包括上报来电状态、管理通话状态及处理用户交互事件。通过导入`@kit.CallKit`并使用相关API,可以轻松实现语音和视频通话、来电提醒、静音、扬声器等操作。示例代码展示了如何处理来电和音频事件,确保用户获得流畅可靠的通话体验。希望这篇文章能帮大家避免踩坑,有需要的同学可以收藏、点赞。
17 0

热门文章

最新文章