flutter京东,fluttere

Flutter 仿京东商品详情页嵌套滚动组件

这是领苗确认记录详情页需要展示给用户的内容,大家可以看到这个页面要承载很多的信息,要向下滚动一段很长的距离才能展示完,想要实现的效果是在页面的顶部有一个TabBar,用户可以通过点击TabBar进行锚点(jumpTo到指定位置),AppBar下的整个页面是可以自由滚动的,在滚动过程中AppBar始终固定在顶部,TabBar在第一次进入详情页的时候不显示,只有在向下滑动的时候会由透明渐变为不透明并固定在顶部,同时当页面滑动到TabBar锚点位置的时候TabBar会切换到对应的下标,也就是要实现TabBar和ScrollView联动的双向控制,Tabbar的切换可以控制页面的跳转,页面的滑动又可以反过来控制TabBar的切换,类似与京东、淘宝的商品详情页效果。

创新互联是一家集网站建设,吉隆企业网站建设,吉隆品牌网站建设,网站定制,吉隆网站建设报价,网络营销,网络优化,吉隆网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

SliverAppBar基本已经达到了我们想要的效果,但在界面顶部会有块空白区域试了很多方法怎么都去不掉,最后看了SliverAppBar这个控件的源码发现是它自带的初始高度。

这个没法设置或消除,不可能直接去改源码,所以后来换了一种实现思路,舍弃了SliverAppBar这个控件,以Stack的形式将TabBar置于ScrollView之上也能达到我们想要的效果,那么问题来了,如何实现TabBar的滚动渐变?很容易想到Opacity透明度控件,通过滚动监听来控制TabBar透明度的改变,借助Notificaion可以完美实现我们的需求。

Notification是Flutter中一个重要的机制,在Widget树中,每一个节点都可以分发通知(Notification)与父(包括祖先)Widget通信,通知会沿着当前节点(context)向上传递,所有父节点都可以通过NotificationListener来监听自己关注的通知,Flutter中称这种通知由子向父的传递为“通知冒泡”(Notification Bubbling)。

  Flutter中很多地方使用了通知,如可滚动(Scrollable) Widget中滑动时就会分发ScrollNotification,而Scrollbar正是通过监听ScrollNotification来确定滚动条位置的。除了ScrollNotification,Flutter中还有SizeChangedLayoutNotification、KeepAliveNotification 、LayoutChangedNotification等。

通过NotificationListener监听滚动事件和通过ScrollController有两个主要的不同:

通过改造后,目前这个组件的原型已经实现并且可以满足我们的需求,最后就是对该demo进行完善使其能够完美接入我们的业务,做到技术赋能业务。

在一个页面滚动区域不是很长的情况下不建议使用,只有当页面足够长的情况下使用这个组件效果会比较好,因为如果一个页面过短,点击TabBar最后一栏进行锚点时,页面最后一个子模块内容无法置顶,只会将页面最后的内容推到屏幕范围内,并且由于TabBar监听到的是滚动的位置,会导致TabBar无法切换到对应的下标,看上去会像个bug,其实是因为底部已经没有内容了。

这个组件本身并没有太大的技术难度,但是有一些比较细节的小逻辑得处理好,并且从中衍生出来的很多琐碎的小的知识点都可以进行拓展。 在组件开发的过程中遇到问题时不局限于控件本身的设计模式,转变开发思维去找寻一些比较新颖的解决方案可能会有意外的收获。同时技术不能脱离于业务,技术赋能业务才能创造价值。

我的第一个flutter项目:购物app

这是个产假作业。故事是这样的。

生了娃,生活一地鸡毛。擦,碎钞机的需求怎么那么多。

当时,有一堆返利优惠券app比较火

...这里扯多了这篇文章被锁了....

我就想,来扒一扒,他们是怎么赚钱的。

结论:淘宝联盟。

淘宝联盟是阿里巴巴旗下的亲儿子,不那么有名是因为是个私生子吧,官网上还有个没听过的名号叫“阿里妈妈”,呵呵。淘宝联盟是给淘宝上推广商品的人用的,他们有一个专门的名称,叫做淘宝客,即“推广者(Publisher)”,他们帮电商平台推荐商品给别的买家,买家购买后,电商平台可以增加销量,而他们则可以获得推广佣金。

后来,知道京东也有自己的联盟平台,叫做“京东联盟”,拼多多也有,叫做“多多进宝”。

回到这些app的赚钱逻辑上来。对于用户而言,它们的两个噱头是:

“用我们的app买,你可以自用省钱”

“用我们的app,分享给别人下单,你可以赚钱!”

所以,这些app推广起来很容易啊,因为谁用谁赚钱呀!

那么为何不自己搭一个呢?

与其这些佣金落到别人口袋,不如自己直接做最顶层上线,发展出N个下线,岂不是躺着赚钱,哈哈哈哈哈

搞清楚赚钱逻辑之后,我发现淘宝联盟的api是很开放的。

商品链接: ;pid=mm_343780171_368000361_101527600308itemId=595640102734src=qtka_wxxtdx=1

其中,activityId是优惠券id,pid是推广者在阿里妈妈官网注册的id,只有这个id是我注册的,那么佣金就到我口袋去了,哈哈哈。

刚好练一下flutter,一次开发,两端使用,我一个人就可以了。app暂时取名为“小猪购”,拿粉红猪贴牌。

演示视频:

苹果在“伟大”背后其实是龌龊油腻大叔 (连载之一)

在几千年的商业历史上,迄今为止,应该没有一个品牌能像苹果这样在全世界范围内被广泛且深入地神话化、宗教化、图腾化,使其品牌形象在44年间逐渐升华至一种超越宗教、超越人种、超越国家且超越真实(即虚假)的崇高和伟大。这种崇高和伟大触及各种我们能想到的普世价值:自由、平等、尊重个性、创新、关怀弱势等。以至于在中华大地,特别是在知乎这种集聚着被充分洗脑的高不成低不就的果粉的平台,如果对苹果发表一些基于事实的负面评论,那将立即被群起而攻之,那种委曲和愤愤不平让人感觉甚于侮辱了他们的父母。对于苹果,这是一种幸福,也是一种目标实现,因为这正是他们每年花上百亿美元做各种营销的目的。对于商业圈内的友商,对于被苹果欺负和压榨的企业或个人,这是一种霸权主义,这是一种以大欺小,这是一种店大欺客,这是更是一种深深的无奈和悲伤。

如果将企业拟人化,44岁的苹果,无论他外表多么光鲜靓丽,从各种事实来说,在本质上苹果其实是一个唯利是图、不择手段的龌龊油腻大叔。

下面我们弄一个简单编年史来说说苹果为什么是一个唯利是图、不择手段的龌龊油腻大叔。

一、Adobe篇:苹果公报私仇封杀Flash

1982年,从施乐公司辞职创业的查尔斯与沃诺克携手创办Adobe,推出打印软件产品PostScript,大受欢迎。苹果当时的麦金塔电脑好看不好用:缺乏应用软件,于是乔布斯请查尔斯与沃诺克吃饭喝酒,让Adobe为苹果的封闭系统开发苹果版的PostScript,最终双方达成合作意向。苹果还投资250万美元购买了340万股Adobe的股票。Adobe技术结合苹果产品组合获得了成功。

1985年,乔布斯被苹果董事会扫地出门。Adobe的创始人沃诺克为乔布斯说好话,并继续与乔布斯保持密切联系,引起当时苹果强烈不满。于是在1989年,苹果联合微软收拾Adobe,让微软为苹果提供替代PostScript的应用,并卖掉全部Adobe的股票。股票套现成功,赚了约8000万美元,但联合行动失败,苹果在1991年被迫与Adobe恢复合作伙伴关系。

(评论:这是苹果的第一次公报私仇。)

1996年底,乔布斯回归奄奄一息的苹果。1998年,乔布斯找Adobe,希望Adobe为苹果电脑开发一套视频处理软件。当时苹果电脑市场份额低至5%,而开发一套视频处理软件需要耗费巨大的人力物力,Adobe觉得这个项目实在没办法赚钱,于是婉拒了乔布斯,没想到这为10多年后埋下了祸根。

(评论:记仇是苹果各种龌龊行为的一个显著特征。)

2007年,第一代iPhone发布,一炮而红,但iPhone与当时火热的Adobe Flash不兼容(当时世界上所有其他手机厂商都支持Flash)。Adobe争取苹果的支持,但乔布斯拒绝表态。

2008年,第二代iPhone(iPhone 3G)发布。对于Flash,乔布斯模糊地说了一句:Flash并不是很适合iPhone。Adobe觉得还有希望,继续争取。

2009年,第三代iPhone(iPhone 3GS)发布。乔布斯还是没有明确表态。

2010年1月,Adobe决定不等了,称不管苹果愿意与否都投入到针对iOS的Flash开发。同年4月,乔布斯写了一封长篇公开信,宣布iOS不支持Flash,并一口气判了Flash六宗罪,并在别的公开场合跳出产品范畴攻击Adobe这个企业:“Adobe很懒惰…..他们缺乏像苹果一样的行事方法”。对于乔布斯的六宗罪,Adobe进行了逐一反驳,但当然没用。在苹果封杀和各种诋毁下,Flash在最终被HTML5等其他技术淘汰,将在2020年底彻底停止更新。

(评论:乔布斯为了这完美复仇,足足等了14年,而且在iPhone推出后,还继续等了3年多才公开表态,因为他知道要等iPhone足够强了才能有底气与Adobe彻底摊牌,否则这个复仇风险太高。如果在iPhone还不强的时候与Adobe正式宣战,万一Adobe全面停止对苹果产品的支持怎么办?要知道,龌龊需要资本,油腻说明有经验。下面我们看看乔布斯的六宗罪是怎么说的。)

第一罪:Flash是一套封闭的系统。

(评论:我的天!苹果还有脸说别人封闭!苹果整个生态都是封闭的好吗?听到苹果说别人封闭,不仅我们觉得好笑,Adobe也觉得好笑,它的官方回复是:“非常幽默。”Flash的确是一个开放的标准,在2009年它在全球有13亿次安装量,超过200万Flash开发者,92%的Windows用户会装Flash Player,无数动画和游戏都需要Flash。)

第二罪:完整的网络:苹果的用户不用Flash没问题,因为有别的可玩的。

(评论:这个神逻辑很有川建国的风范。逻辑可以简化为:你有个好东西,好多人都用,但我就不用,为什么?因为我有别的东西,别的东西也很好。请问这解释了不用的原因吗?没有。这只是说了不用的补救措施,随便吹嘘一下自己。)

第三罪:可靠性、安全性和性能:Flash造成Mac死机,Flash不安全,Flash在移动端表现不行。

(评论:这是无数果粉用来洗白苹果的理由,更用Flash最终消亡的结果神化乔布斯,说他多么高瞻远瞩,其实根本是胡扯。如果一个软件能引起一个电脑的操作系统死机,你说这个操作系统本身还安全可靠吗?说Flash不安全,感觉的确有点道理,Flash的确好多漏洞,Adobe及Flash的开发者一直在补漏洞。但话又说回来,系统开放的代价是风险提高,但不能因为这个系统有一点风险就彻底否定它,而是应该综合衡量各种因素,特别是用户体验。系统的安全是靠迭代去提升的,不可能一开始就有完美的系统,包括苹果自己。苹果即使是封闭的系统,他的iCloud不是总被攻破吗?iPhone不是也总被刷机破解吗?一件事情要放在一定的历史背景下讨论才有意义:在2000年到2010年间,Flash的的确确让十多亿的用户提供了便利和乐趣,在当时,Flash的确也是苹果客户想兼容的。最后,乔布斯说Flash在移动端表现不行,但事实是当时Flash Player在Google Play上曾广受欢迎,有三分之二的用户给其打了最高分。最终Flash的确是消亡了,但它的消亡一半是因为苹果的封杀(其实还有微软和Youtube的封杀),一半是HTML5在技术上的确有优势,但这个客观结果绝对不能用来洗白乔布斯主观上的公报私仇。再补充一点,果粉老是吹嘘苹果怎么把安全视为生命线,但事实是乔布斯并没有把这点放在最重要的第一罪或最后一罪。)

第四罪:耗电:Flash是软件解码,所以耗电多了1倍。

(评论:乔布斯的原话是:“iPhone播放H.264视频可以坚持10小时,而使用软件解码模式,电池在5小时内耗尽。”请问哪一代的iPhone可以连续看视频10小时?从来没有好不好?iPhone出了名耗电惊人,华为说这个话我们可能相信,苹果说这话自己不心虚?Adobe在安卓上已经验证过用Flash和不用Flash看视频的电量区别,乔布斯根本就是胡扯。)

第五罪:Flash做触摸屏体验不行,而且开发者需要花很多额外的劳动在Flash上实现触摸。

(评论:事实已经证明乔布斯在这点上也是毫无根据。Flash在安卓上体验完美,一点问题没有。至于说开发者不高兴,Flash在当时有无数的应用,开发者都挤破头加入,他们没不高兴,你乔布斯为什么不高兴?Flash收取开发者的费用非常低廉(使用低级功能免费),与苹果的30%抽成相比,你说开发者更喜欢谁?)

第六罪:乔布斯说这是最重要的原因:Flash是一个跨平台开发工具,因此Adobe的目标不是帮助开发者编写最棒的苹果应用软件,于是苹果客户也不能有最好的体验。

(评论:这个逻辑是伪逻辑。为什么Flash是一个跨平台开发工具就能推导出Adobe的目标不是帮助开发者编写最棒的苹果应用软件?我们能举出一堆世界级的跨平台开发工具给iOS带来好体验的例子:腾讯的微信小程序,谷歌的Flutter(咸鱼,京东及美团在用),Facebook的React Native(QQ音乐,QQ空间及手机百度在用),阿里的Weex(淘宝及支付宝在用),还有Adobe的PhoneGap(对的,是你乔布斯说的跨平台不好,现在也是跨平台的工具,还更是Adobe的东西,这个你怎么又不封杀呢?)。可见,乔布斯这一点也是扯淡的。)

综合上面六个罪,乔布斯没有一个理由是靠得住的,这也在侧面证明了苹果封杀Flash纯粹就是以大欺小,公报私仇。

下一篇预告:iPhone 4信号门篇:苹果欺骗客户让客户换个姿势打电话

零基础学习前端开发要怎么开始

这里整理了一份web前端学习路线的思维导图,需要掌握和学习的内容如下:

第一阶段:专业核心基础

阶段目标:

1. 熟练掌握HTML5、CSS3、Less、Sass、响应书布局、移动端开发。

2. 熟练运用HTML+CSS特性完成页面布局。

4. 熟练应用CSS3技术,动画、弹性盒模型设计。

5. 熟练完成移动端页面的设计。

6. 熟练运用所学知识仿制任意Web网站。

7. 能综合运用所学知识完成网页设计实战。

知识点:

1、Web前端开发环境,HTML常用标签,表单元素,Table布局,CSS样式表,DIV+CSS布局。熟练运用HTML和CSS样式属性完成页面的布局和美化,能够仿制任意网站的前端页面实现。

2、CSS3选择器、伪类、过渡、变换、动画、字体图标、弹性盒模型、响应式布局、移动端。熟练运用CSS3来开发网页、熟练开发移动端,整理网页开发技巧。

3、预编译css技术:less、sass基础知识、以及插件的运用、BootStrap源码分析。能够熟练使用 less、sass完成项目开发,深入了解BootStrap。

4、使用HTML、CSS、LESS、SASS等技术完成网页项目实战。通过项目掌握第一阶段html、css的内容、完成PC端页面设计和移动端页面设计。

第二阶段:Web后台技术

阶段目标:

1. 了解JavaScript的发展历史、掌握Node环境搭建及npm使用。

2. 熟练掌握JavaScript的基本数据类型和变量的概念。

3. 熟练掌握JavaScript中的运算符使用。

4. 深入理解分支结构语句和循环语句。

5. 熟练使用数组来完成各种练习。

6.熟悉es6的语法、熟练掌握JavaScript面向对象编程。

7.DOM和BOM实战练习和H5新特性和协议的学习。

知识点:

1、软件开发流程、算法、变量、数据类型、分之语句、循环语句、数组和函数。熟练运用JavaScript的知识完成各种练习。

2、JavaScript面向对象基础、异常处理机制、常见对象api,js的兼容性、ES6新特性。熟练掌握JavaScript面向对象的开发以及掌握es6中的重要内容。

3、BOM操作和DOM操作。熟练使用BOM的各种对象、熟练操作DOM的对象。

4、h5相关api、canvas、ajax、数据模拟、touch事件、mockjs。熟练使用所学知识来完成网站项目开发。

第三阶段:数据库和框架实战

阶段目标:

1. 综合运用Web前端技术进行页面布局与美化。

2. 综合运用Web前端开发框架进行Web系统开发。

3. 熟练掌握Mysql、Mongodb数据库的发开。

4. 熟练掌握vue.js、webpack、elementui等前端框技术。

5. 熟练运用Node.js开发后台应用程序。

6. 对Restful,Ajax,JSON,开发过程有深入的理解,掌握git的基本技能。

知识点:

1、数据库知识,范式,MySQL配置,命令,建库建表,数据的增删改查,mongodb数据库。深入理解数据库管理系统通用知识及MySQL数据库的使用与管理,为Node.js后台开发打下坚实基础。

2、模块系统,函数,路由,全局对象,文件系统,请求处理,Web模块,Express框架,MySQL数据库处理,RestfulAPI,文件上传等。熟练运用Node.js运行环境和后台开发框架完成Web系统的后台开发。

3、vue的组件、生命周期、路由、组件、前端工程化、webpack、elementui框架。Vue.js框架的基本使用有清晰的理解,能够运用Vue.js完成基础前端开发、熟练运用Vue.js框架的高级功能完成Web前端开发和组件开发,对MVVM模式有深刻理解。

4、需求分析,数据库设计,后台开发,使用vue、node完成pc和移动端整站开发。于Node.js+Vue.js+Webpack+Mysql+Mongodb+Git,实现整站项目完整功能并上线发布。

第四阶段:移动端和微信实战

阶段目标:

1.熟练掌握React.js框架,熟练使用React.js完成开发。

2.掌握移动端开发原理,理解原生开发和混合开发。

3.熟练使用react-native和Flutter框架完成移动端开发。

4.掌握微信小程序以及了解支付宝小程序的开发。

5.完成大型电商项目开发。

知识点:

1、React面向组件编程、表单数据、组件通信、监听、生命周期、路由、Redux基本概念。练使用react完成项目开发、掌握Redux中的异步解决方案Saga。

2、react-native、开发工具、视图与渲染、api操作、Flutter环境搭建、路由、ListView组件、网络请求、打包。练掌握react-native和Flutter框架,并分别使用react-native和Flutter分别能开发移动端项目。

3、微信小程序基本介绍、开发工具、视图与渲染、api操作、支付宝小程序的入门和api学习。掌握微信小程序开发了解支付宝小程序。

4、大型购物网站实战,整个项目前后端分离开发;整个项目分为四部分:PC端网页、移动端APP、小程序、后台管理。团队协作开发,使用git进行版本控制。目期间可以扩展Three.js 、TypeScript。

这已经是一套非常完备的Java学习路线了,零基础学习Java完全自学的话还是比较吃力的,建议还是找专业的机构系统学一下,可以点 击 头 像 了解一下。


本文标题:flutter京东,fluttere
URL地址:http://myzitong.com/article/dsejoie.html