新闻详情

新闻详情

首页 / 资讯中心 / 详情

如何获取滚轮停止后的选中值:wheel-picker-cj 滚动监听与回调机制详解

发布时间:2026/9/25 3:20:23来源:尧图网络
如何获取滚轮停止后的选中值:wheel-picker-cj 滚动监听与回调机制详解
如何获取滚轮停止后的选中值wheel-picker-cj 滚动监听与回调机制详解【免费下载链接】wheel-picker-cj滚轮选择UI组件项目地址: https://gitcode.com/Cangjie-TPC/wheel-picker-cjwheel-picker-cj是一个基于仓颉语言的滚轮选择 UI 组件库提供日期、地区、年、月、日、自定义等多种选择器。很多新手最常问的一个问题就是滚轮停下来之后我怎么知道用户选中了哪一项本文带你快速搞懂它的滚动监听与回调机制几行代码即可拿到选中值。一、原理选中值在「滚动停止」那一刻才会回调理解 wheel-picker-cj 的回调机制先要知道内部三个滚动事件的分工事件触发时机作用onScroll滚动过程中持续触发同步选中幕布、记录偏移量onScrollEnd手指离开且滚动停止后对齐吸附、计算选中索引、触发选中回调onScrollEdge滚到顶部/底部边缘循环模式下无缝衔接的数据位移也就是说组件会等你松手、滚轮彻底停稳并完成对齐吸附之后才把最终选中项的位置索引和数据交给你的监听器。以年选择器为例回调正是在onScrollEnd中发起的核心逻辑见 wheel_year_picker_component.cj先根据偏移量对齐到最近的整行再取出mOnItemSelectedListener并调用onItemSelected(position, data)。 这就解释了新手常见疑惑为什么快速滚动时收不到回调因为组件只关心最终停在哪里滚动中的中间状态不会触发。二、两种回调接口一张表看懂监听器所有回调接口集中定义在 listener.cj接口适用选择器回调方法参数含义OnItemSelectedListener年、月、日、日期选择器onItemSelected(position, data)选中项索引 选中值OnAreaSelectedListener地区三级联动选择器onProvinceSelected/onCitySelected/onAreaSelected各级的索引 名称两者的共同点都在对应滚轮停止并吸附完成后触发拿到的就是用户最终确认的选中值。三、年/月/日选择器一行代码注册监听年、月、日选择器都通过 Model 的setOnItemSelectedListener()注册监听可链式调用this.showWheelYearPicker this.showWheelYearPicker .setYearRangeStart(1972) .setYearRangeEnd(2025) .setOnItemSelectedListener(MyOnItemSelectedListener())然后实现监听接口滚轮停止后就能弹出选中值public class MyOnItemSelectedListener : OnItemSelectedListener { public func onItemSelected(position: Int64, data: Int64): Unit { PromptAction.showToast(message: 选中索引${position}选中值${data}) } }position选中项在数据列表中的索引data选中的值年选择器中即年份数字完整示例可参考 wheel_year_picker.cj 与官方文档 feature_api.md 的年选择器章节。四、自定义选择器用 setSelectDataShow 拿选中数据自定义选择器的数据是字符串数组它的回调方式是闭包setSelectDataShow()参数就是选中的文本.showWheelPickerMiddle this.showWheelPickerMiddle .setData(this.arr) .setSelectDataShow({ text: String PromptAction.showToast(message: Centre: text) })实现细节在 wheel_picker_component.cj组件先用onTouch记录手指抬起滚动停止时再计算吸附位置最后调用mSelectDataShow(mSelectedData)。 小技巧如果不想等回调也可以随时主动查询当前值——getCurrentItemPosition()拿索引、getCurrentItemData()拿数据。五、地区选择器三级联动各滚轮独立回调地区选择器是省/市/区三个滚轮联动每一级停止时都会分别回调非常适合做地址校验public class MyOnAreaSelectedListener : OnAreaSelectedListener { public func onProvinceSelected(provincePos: Int64, provinceName: String): Unit { PromptAction.showToast(message: 选中省份${provincePos} - ${provinceName}) } public func onCitySelected(cityPos: Int64, cityName: String): Unit { PromptAction.showToast(message: 选中城市${cityPos} - ${cityName}) } public func onAreaSelected(areaPos: Int64, areaName: String): Unit { PromptAction.showToast(message: 选中地区${areaPos} - ${areaName}) } }通过setOnAreaSelectedListener()注册即可示例见 wheel_area_picker.cj。回调触发点分别位于 wheel_area_picker_component.cj 中省、市、区三个滚轮的onScrollEnd分支内。六、新手常见坑与排查清单✅监听器没注册务必在aboutToAppear()中链式调用setOnItemSelectedListener()漏掉这一步回调永远不触发。✅索引 ≠ 值position只是数组下标真正的选中值要看data年选择器或名称地区选择器。✅回调只认停止快速滑动过程中没有回调这是设计使然若需要滚动中实时更新需自行监听onScroll自行换算。✅自定义选择器的触发前提它依赖手指抬起事件程序化滚动不会触发setSelectDataShow回调。✅想直接读当前值各 Model 都提供主动查询方法如getSelectedItemPosition()、getCurrentItemData()、getYear()/getMonth()/getCurrentDate()无需等待回调。七、核心文件速查回调接口定义wheelpicker/src/main/cangjie/listener.cj自定义选择器组件回调触发实现wheelpicker/src/main/cangjie/wheel_picker_component.cj年选择器组件监听回调示例wheelpicker/src/main/cangjie/wheel_year_picker_component.cj地区选择器组件三级联动回调wheelpicker/src/main/cangjie/wheel_area_picker_component.cj完整 API 与示例doc/feature_api.md掌握这套「滚动停止 → 吸附对齐 → 监听器回调」的机制后你就可以在任意页面中把用户选中的值安全地拿到手放心接入业务逻辑啦 【免费下载链接】wheel-picker-cj滚轮选择UI组件项目地址: https://gitcode.com/Cangjie-TPC/wheel-picker-cj创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

B站视频接口批量抓取实战:视频列表与详情数据采集全指南 2026/9/25 4:00:55

B站视频接口批量抓取实战:视频列表与详情数据采集全指南

做内容运营和数据分析的人,迟早会遇到一个需求:批量拉取某个B站账号的视频列表和详情数据。可能是想把自己账号的投稿导出成表格做季度复盘,可能是想研究某个垂直领域头部UP主都在发什么选题,也可能是想给内部工具加一个稳定的数据…

阅读更多 →
Kinect V2点云方体体积测量:PCL七步流程与避坑指南 2026/9/25 4:00:43

Kinect V2点云方体体积测量:PCL七步流程与避坑指南

简介:这份资源面向计算机视觉、机器人感知方向的毕业设计与课程设计学习者,提供基于Kinect V2深度相机与PCL点云库实现方体目标体积测量的完整工程。项目按捕获点云、空间裁剪、下采样、滤波、平面分割找地面、平面分割找目标顶面、计算面积高度及体积的…

阅读更多 →
谷歌账号登录2FA两步验证码获取教程 2026/9/25 4:00:37

谷歌账号登录2FA两步验证码获取教程

很多人在登录自己买到的谷歌账号时,会发现账号开启了2FA,也就是两步验证,在登录时除了邮箱和密码外,需要额外输入一个验证码。 2FA有多种选项可以选,但一般会选择身份验证器(Authenticator)&…

阅读更多 →
什么是谷歌2FA两步验证?如何开启?(保姆级教程) 2026/9/25 4:00:37

什么是谷歌2FA两步验证?如何开启?(保姆级教程)

在网络安全日益重要的今天,仅仅依靠一个“强密码”已经无法完全保护账户安全。数据泄露、撞库攻击层出不穷,谷歌2FA(两步验证) 成为了保护数字资产的最后一道防线。 本文将详细介绍什么是两步验证,以及如何手把手开启谷歌账户的2FA功能。 什么是 2FA (Two-Factor Authenti…

阅读更多 →
2026重庆脑肿瘤活检全流程解析:从定位到分子病理 2026/9/25 4:00:25

2026重庆脑肿瘤活检全流程解析:从定位到分子病理

脑肿瘤活检这个词,在神经外科圈子里天天被提起,但真要给患者家属讲清楚,很多人还是一头雾水。2026年,重庆的脑肿瘤诊疗正在从“凭影像猜”走向“拿组织说话”,立体定向活检、机器人辅助定位、术中快速病理这些词越来越…

阅读更多 →
实时数据可视化库选型与性能优化:ECharts、uPlot实战对比 2026/9/25 4:00:24

实时数据可视化库选型与性能优化:ECharts、uPlot实战对比

做过几个实时监控大屏之后,我对“实时数据可视化库”这个需求算是又爱又怕。爱的是数据流动起来的那股生命力,怕的是实时这两个字背后几乎无穷无尽的坑。这篇文章就用我实际摸爬滚打的经验,跟各位聊聊实时可视化库的底层逻辑、选型思路&#…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉