Flutter改善套娃地狱问题(仿喜马拉雅PC页面举例)腾讯云开发者社区

上面关于页面层的这些问题,如果多人协同开发一个大型项目,代码不规范的话,大概率都是会遇到的(改别人写的模块...);后期改需求,真的是一种折磨,有种码海找针的感觉。

如果改你自己写的模块,那可能还会好点,毕竟你还有点印象,整个模块的大概思路,还知道怎么改。如果是改别人写的模块,你就需要在大量widget海中,去揣摩别人写这些widget的意图,结构一下子也不能理清,十分痛苦,有可能边改边骂骂咧咧的。。。

说明

代码已经发布到Github上,web端也已经部署好了,因为使用的CanvasKit模式打包的,首次加载可能比较慢,多等一会,因为Web端部署在Github上,访问的话,要确保你的网络能访问Github。

来对比下仿制的效果吧,有个六七成相似,很多Icon和图片实在找不到相似,,,这里demo只提供一个样式演示,功能别想了,这不是一朝一夕,一个人能搞出的。。。

照片都是从喜马拉雅web端上搞下来的,数据一直在变,相应栏目的数据有对不上,但是整体样式大致还是差不多。

其中Banner模块是区别最大的一块,用的三方库只能支持搞成这样,各位靓仔将就着看看吧。

上面俩组图片,细节方面对比基本惨不忍睹,但是整体架构上还是比较相似。

建议各位彦祖,下载下window安装包,安装体验下;MacOS的于晏们,你们可以看看web展示效果。

咱们马上来看看怎么搞规范代码吧!复杂的模块,让你的代码也能高度可维护!

结合上面的业务View和一切皆Widget的思路,我们可以得出一个结论:搞业务Widget,然后再进行组合!

当然,咱们在这里得出了一个不是结论的结论,一般来说,这种操作是咱们基本素养,但是具体的操作细节上,还是有很多需要注意的:

上面咱们一通分析猛如虎后,得出一个结论:搞业务Widget!

关于业务Widget的封装细节,这里说明下:

别喷套娃了,外观模式的思想稍稍这么一用,套娃直接GG

设计模式,yyds!

一般来说,一个页面整体基本上是横向(Row)或者纵向(Column)的结构

咱们仿造的喜马拉雅模块也是属于纵向结构:上下俩大模块

主模块的很多主体细节,是完全可以封装起来的,新建一个(模块名_function)文件

///喜马拉雅整体外层布局设置WidgethimalayaBuildBg({requiredListchildren}){returnScaffold(backgroundColor:Colors.white,body:Column(children:children),);}///播放控制栏上面的外层布局设置WidgethimalayaBuildTopBg({requiredListchildren}){returnExpanded(child:Row(crossAxisAlignment:CrossAxisAlignment.start,children:children,),);}///顶部右侧信息流外层布局设置WidgethimalayaBuildInfoListBg({requiredListchildren}){returnExpanded(child:Column(children:children),);}///顶部右侧信息流外层布局设置-可滑动部分WidgethimalayaBuildScrollInfoListBg({requiredListchildren}){returnExpanded(child:CustomSingleChildScrollView(child:Container(width:860.dp,child:Column(children:children),),),);}业务Widget封装关于业务Widget封装,是核心所在,这个非常重要

几个要点

先来看看第一种情况,最常见的情况,children的widget,从上到下排列下来,非列表类数据

大家在写Flutter的时候,应该能明显的感觉到,写页面拥有高度的自由,样式、页面结构及其逻辑全都能耦合在一起。

既然我们还达不到,无招胜有招的水平;那么下笔之前还是要有点章法的好,所以在实际开发中,要注意自己代码规范啊。。。

假设一种情况

说一点题外话

实际上写html也是无限套娃,不同的是,它从根本上做到的样式结构分离,控件的细节描述,全部交给了css去做,所以页面整体看上去还是满清爽的:

Flutter直接从根本上样式结构不分离,结构上直接从上往上下一套到底

所以,哪里有十全十美的框架,总是有舍有得。。。

新的事物发展,必然会迎来相应的阻力

这里假设一种场景:

角色互换

其实,对于很多言论,我们没必要在意;角色互换,说不定,对方此刻的行为,就是我们自己以后可能会做的事。

其实,我们都是打工人,又何必撕来撕去呢?

通过上面一些代码规范操作后,再配合上GetX的状态管理,相信一般的项目,你都能hold的住了

THE END
1.“五段码”描述模型技术和“四个八二法则”实施方法论是物料数据一物料主数据常见的痛点 1、物料命名常出现问题举例 图1.物料数据常见问题描述 (1)物料分类交叉 物料分类不科学。没有明确的分类标准,相同物料被分配到不同物料种类中。 表1.相同类型的物料归在不同的物料种类中范例 (2)物料描述不规范 有国家标准规范的物料包含大量动态因素(如外方图号、原代号、原图号等),标https://blog.51cto.com/u_15127642/2774967
2.提升游戏流水1530%,7年从业者谈自建or外包GS专业研究:针对每个类型的游戏有专业的研究,有经过经验总结、实战验证、数据验证的一套行之有效的方法,专业的意义在于能针对不同游戏迅速抓准要点针对性解决,不浪费甲方的每一个区服,以卡牌举例,需要清楚以下3个问题: 1、卡牌游戏特色是什么 前期:以推关卡为主线、副塔为支线; https://www.gameres.com/897758.html
3.什么!我们引以为傲的高铁原来是中国制造业最大痛点?《痛点》原文: 一位参与动车引进工作的技术工程师举例说,我们可以按外方图纸生产转向架、电机、变压器,用外方的核心零部件组装变流器和自动控制系统,却不知道头型的设计依据、原理,不知道加宽车体有没有风险,得不到车体的原始设计计算书,得不到转向架的关键参数和升级改进方法,也得不到电机和变压器的电磁场、热场、https://www.jfdaily.com/news/detail?id=79363
4.实时数仓建设实践:从滴滴快手到腾讯的案例解析Lambda 架构大家应该已经非常熟悉了,下面我就着重介绍一下我们采用 Lambda 架构在数仓建设过程中遇到的一些痛点问题。 例如在实时计算一些用户相关指标的实时场景下,我们想看到当前 pv、uv 时,我们会将这些数据放到实时层去做一些计算,这些指标的值就会实时呈现出来,但同时想了解用户的一个增长趋势,需要把过去一天的https://blog.csdn.net/ytp552200ytp/article/details/124115072
5.财政部支持深圳税改专家:有利于深港在个税等层面深度对接针对深圳面临的难点痛点问题 他表示,纵观《实施意见》全文可以发现,其中提到的方向以及领域,都是针对深圳面临的难点痛点问题,涉及到深圳未来发展的规划。“深圳教育、医疗、住房等资源紧缺,意见支持深圳探索促进公共服务优质均衡的财政政策体系,就是要保障民生,留住人才;探索鼓励企业加大科技投入的财税政策,就是在给企业减https://finance.eastmoney.com/a/202211082555075429.html
6.城市病治理范文8篇(全文)四、“城市病”的治理的有效措施并举例说明 1、目前我们正处在城市化加速发展和城市病显形的阶段,随着城市人口不断膨胀,我们面临的问题越来越突出,辟建新城是治理城市病的重要手段:要发展这个城市,在另外一个地方,我们要建一座新城,这个新城包括道路、绿化等基础设施都是按照现代化的城市整体规划。我感觉以前顺义还没https://www.99xueshu.com/w/file3sf3r7ws.html
7.获证上市指真生物流式荧光发光免疫分析仪可实现多种分泌性蛋白多联检指真生物HighFlux系列产品同时解决了这两个问题: 1、解决单指标检测,HighFlux实现多联检、高通量 HighFlux产品最大检测通量为120样本/h,每管内可实现多指标联检。举例来说,12因子检测可以实现1440测试/h,单位时间大幅度提高了检测通量。 2、HighFlux体积小巧,节省实验室空间,提高空间利用率 https://www.instrument.com.cn/news/20231010/686877.shtml
8.对谈方飞教授:AI向善方教授:举例而言,斗地主,你会上 AI 托管。问题在于如果用多智能体强化学习,AI 能力就会很强,但并非所有的游戏都需要一个强托管 AI 或者强 NPC。我们有些时候倾向于将智能体做得更“类人”,而非必胜。类似这方面的工作我们也在做,可以认为是落地的一种方式。 http://www.bianews.com/news/details?id=159509
9.人力资源培训讲师王建华TPM咨询公司TPM管理6S管理大家来找茬:找出财务部的KPI的问题 三、如何设计定量指标 1. 定量指标的含义 2. 定量指标有效的前提条件 3. 定量指标评价标准制定 举例:SMART的业绩指标 VS 模糊的业绩指标 四、如何设计定性指标 1. 定性指标的含义 2. 定性指标评价标准制定 五、如何设计过程指标 http://2fwww.szzttpm.com/a/zhishibaike/20200924/755.html
10.生活中的痛点问题及解决方案500字.docx生活中的痛点问题及解决方案500字.docx,大学生生活中的几个痛点 1、宿舍网络速度太慢。一个宿舍共用一根网线,哪些长时间奋战游戏的同学,将大量占用网络资源,动动脑,解决这个痛点,就是一个商机。 2、教学楼手机充电不方便。现在大学生都随身携带电子产品,手机或者平板https://m.book118.com/html/2022/1022/6023021243005004.shtm
11.生活中痛点的案例30个(生活中的痛点问题分析)大商梦还有一个痛点就是,自己内心一直不快乐,把自己的价值,建立在别人认可的基础上,如果对方认可她,她就感到快乐,她也很渴望爱,呵护与温暖,如果对方不给她这种感觉,她就觉得自己哪里没做好,所以对方不给,总是从自己身上找原因,容易否定自己,如果对方给她一点点爱,她就容易被感动,甚至感动的丧失理智都有可能。我就是http://www.dasum.com/7938.html
12.业务反馈的痛点及问题点分类业务反馈的痛点及问题点分类,主要分为上线慢、排期久、测试占时间、上线后BUG+数据不准确四种。 亿图脑图MindMaster原创思维导图社区提供海量优质的思维导图模板资源,一个各类脑图创意思维绘制,整理知识学习与交流的平台 - 用思维导图来表述业务反馈的痛点及问题点分类https://mm.edrawsoft.cn/template/280157