[译] 教你如何用 Flutter 的 GestureDetector 构建自定义滑块

文章介绍了如何在Flutter中创建一个可拖动的CustomSlider控件,涉及有状态组件的状态管理、颜色配置、手势检测(包括onPanStart、onPanUpdate和onPanEnd)以及百分比显示。作者还提供了相关代码示例和学习资源链接,针对Android开发者的技能提升和面试准备。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个控件非常简单,我们接收完成的百分比值,以及正面和背面部分的颜色。主 Container 将背面颜色作为背景,我们将绘制正面部分去覆盖它。它的子节点是 Row,虽然它只包含一个子节点,但我保留了它,方便你添加另一个 Container,它可以显示背面的部分或其中的一些信息(例如,剩余的百分比)。通过从 Container 的总宽度中取相同的百分比,计算并显示已完成百分比的 Containerwidth

接下来,我们从主要的 App 类开始。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

显然,现在我们必须声明 MyHomePage 类,现在这个类应该能够使用我们上面编写的 CustomSlider 控件,并处理手势检测部分,其中用户可以拖动来增加和减少滑块显示的百分比。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个控件必须是有状态的,因为要追踪其百分比。在这里,我们声明了控件的颜色,并将初始百分比保持为 0.0。另外还要注意,现在我们有一个显示舍入百分比的 Text,它与 CustomSlider 一起在屏幕上居中。

现在,请注意我们用 GestureDetector 控件包围住了 CustomSlider 控件。我们接下来的工作就是,给控件注入活力,使用 GestureDetector 控件来捕获用户的拖动事件。

让我们看看实现这部分的代码。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这是添加了拖动部分的完整代码。GestureDetector 控件加入了 onPanStartonPanUpdateonPanEnd 属性来处理拖动的手势。我希望这些命名能表明其各自的用途。

为了知道用户拖动了多少,我们存储了拖动开始的位置,每次用户移动他/她的手指时,都会在 onPanUpdate 方法中计算距离。接着将距离除以滑块的宽度 200。然后我们简单地将计算完的距离添加到百分比的位置,设置值为 0.0 到 100.0 之间。该值不会超过滑动块的边界,这对于百分比的值来说是自然而然的事情。

这里只给出一个我们自定义的滑块……请用这个来展示一下你做了什么改变吧。

点击这里 获得不同可以复制/粘贴的代码版本。

如果发现译文存在错误或其他需要改进的地方,欢迎到 掘金翻译计划 对译文进行修改并 PR,也可获得相应奖励积分。文章开头的 本文永久链接 即为本文在 GitHub 上的 MarkDown 链接。


自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

最后,面试前该准备哪些资源复习?

其实客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

这里再分享一下我面试期间的复习路线:(以下体系的复习资料是我从各路大佬收集整理好的)

《Android开发七大模块核心知识笔记》

面试字节两轮后被完虐,字节面试官给你的技术面试指南,请查收

面试字节两轮后被完虐,字节面试官给你的技术面试指南,请查收

《960全网最全Android开发笔记》

面试字节两轮后被完虐,字节面试官给你的技术面试指南,请查收

《379页Android开发面试宝典》

历时半年,我们整理了这份市面上最全面的安卓面试题解析大全
包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。

《507页Android开发相关源码解析》

只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!**

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值