Flutter七日总结,android自定义控件开发入门与实战

然后全文搜索一下界面上的字,找到在lib包的main.dart里


我要在lib里写代码?不会这么奇葩吧?然后我用面向对象的天眼看了一下main.dart
正如第一篇的分析,果然这么奇葩。而且语法与Java,c++,Python,Js都不一样,
好吧,又要学方言了,自从JS的Es6玩转了以后,我就不怕语言了,
Kotlin也好,Python也好,这些性格"不羁"一些的和ES6都八九不离十
只要语法通了,之后就是个人能力的问题了,所以Dart入门很快,半天就基本掌握了
想要熟练,那还必须去实际操练才行


[番外]:分享一些心情-------------

我经常把编程当做锻剑,我一直在精炼Java这把剑,用Android这把剑鞘盛放
Python也好,C++也好,Js也好我只是玩玩,都被我当做光环对Java之剑进行附加
至今在Android中我遇三次瓶颈期,我选择暂时离开Android,去拓展一下视野,
死磕已经作用不大了,记得第二次瓶颈是被网络束缚地无法前进一步,
于是一咬牙,暂停安卓,去专门找后端的书和资料去看,也因此萌生了搭建自己网站的念头
然后前后并行,两大光环加持,也上线了我的个人网站,两端的基础知识已基本在心中。


由于个人网站的搭建,我对服务端有了些认识,网络请求与上传下载也都知道是怎么回事
也有了测试的渠道,如果一个对前后端毫不知情的Androider,肯定会卡网络瓶颈上
数据流的概念初步形成,在我的眼中,界面的展示、上传下载、网络上的一切都是字节的流动
然后重归Android之时,前后端已经像一条线贯穿了,Android顺利和服务器交互时,第二瓶颈已过
有种"断剑重铸之日,骑士归来之时的感觉",具体细节,打算写个2018年终总结来记录一下

[番外]:截止-------------

如何很快地接收一件新事物(新知识)? 用你最擅长的技术去对接新知识,
比如你是个天文迷,如果你想学英语,去看天文方面的读物会更有利,
因为你有这方面的知识储备,即使知识储备是中文又如何?难道英文的地球能出太阳系?
语言和知识本就是两码事,语言表述知识并不会更改知识本身。
所以知识对接上,两种语言之间的交错,会让你更快接受语言的本身,也能强化知识


所以我并没有一开始就上控件,而是基于我最熟悉的Canvas来绘图,熟悉Dart语法,否则后面工作不好开展,
在Android中Canvas的丰富知识储备让我很好的与Flutter中的Canvas对接,这一棋自认为不错
对接之后,以前画网格,坐标系,n角星的东西又能拿出来秀了,旧知识转化成新知识
通过Java代码更改成Dart代码,也让我更清楚了两者的异同点,以后把握起来就轻松写

总的来说第一天还是蛮轻松好玩的。


第二天及体悟:

第二天可以说是兵行险招,本打算把基础控件说一下的(依稀听过Flutter的控件超级多)
但第一天图画好之后,非常想玩动画,如果放在后面,感觉不连贯
然而并没有把握把动画写好,毕竟才更接触一天而已。挑战一下呗,然后就玩动画了

第二天可以说是这七天里我感觉最成功的,动画+粒子运动全都复刻到Flutter上了
粒子时钟完成后,挺激动的,然后就拿去分(xian)享(bai),心想,Flutter还是不错的嘛
这绝对是Flutter的第一个粒子时钟(除了我,也许没有人会这么无聊做这种特效)

看上去第二天的文章好像一气呵成,其实也遇到了些阻碍,
dart的时间处理和三维数组和Java有些出入,还有就是时钟的粒子运动,
差一点就放弃了,因为效果总是出不来。心想,搞出个时钟就算了吧,不也挺好嘛。
可是真的很不甘心,都到这步了。然后输出小球集合的个数、第一个小球的位置,
数据好好的啊,可为什么出不来效果……最后发现小球半径没有设置……出来才有鬼呢

有人问我有没有什么心得,心得这东西说出来都懂,做起来却不简单,
如果你觉得一个人的学习方式很好,你应该去观察他,然后取长补短。
每个人的境遇都是不同的,别人的学习方法不一定适合你,你没有必要和别人一样。
比如我大学喜欢写诗,然后通读各大名著,不断思考世界,如果你没有这些基础,
我的心得就不一定适合你。每个人的价值观也是不同的,我是更倾向提升自我境界的那种人,
物质并不多求。心得这东西,别人的都是废话,需要的话,网上鸡汤自己挑,
一般人豪言壮语,大多只是自欺欺人。最近看到八个字挺实在:“生死看淡,不服就干”。

总的来说第二天收获颇丰。


第三、四天及体悟:

第三天基础控件,感觉应该很枯燥,所以我尽可能让它变得有趣
我喜欢画体系的树状图,因为这样看起来很清晰,也助于整理思路
我喜欢卡片,源于游戏王,对于繁多的事物,感觉用卡片记录一下比较有趣


第三天源码翻得比较多,基本上是进去看控件属性,代码测试
通过Android和html+css的布局经验,基本上套路都是那回事
而且Flutter的Flex布
局和css的flex布局不谋而合,所以入手容易很多
遇到margin的时候,有点感触,写了点看到新东西的态度:

新事物往往都与旧事物有联系,学习新事物最好快速找到它与你知识库中旧事物的联系,
联系的多少取决于你知识库中内容的多少,连接得越多,你会越快或越能掌握旧事物


本以为第四天可以把剩余的控件讲完,再写几个小案例呢,万万没想到:
Flutter的布局如此之多,再加上卡了一点小壳,只勉强把控件了结(实际上还有很多未涉及)
Flutter里面29种叠合模式也是吓到我了,也借此分析了一下这种多情况的分析方式
第三天把我的激情燃烧殆尽,第四天,三个控件一组,一共六组18张,没那么多花哨
最后将Flex布局详细说明了一下


这两天难度不是很大,就是有点麻烦,画图,配卡什么的,
只是敲代码的估计一天就够了,不过那样会及其无聊,不是我想要的
第四天写到最后其实还是有不少控件没涉及到呢,但感觉也就那回事
认识一个控件可就那点套路,属性基本上也就那些,遇到新的看看也就明白了
没有必要全部列出来,这就是"鱼与渔"的区别吧,鱼是抓不完的,你也放不下


两条源码翻得比较勤,有点小感悟:

有问题就去解决,即使牵涉出十个新问题,你就想象成问题栈,
有问题就进栈,解决了就出栈,这样不会乱,你可见的就是栈顶而已,
一个一个来,这样会相对于11个问题摆在你面前更容易接受。
至于什么时候stackover(栈溢出)就看你的决心和耐力了。
当然新手感觉hold不住时,可以深呼吸,咬一下牙坚持一下。
还是不行的话,记录下问题,果断退出。也许你现在等级不够,
这个boss你打不过,那就去刷怪升级吧。短剑重铸之日,骑士归来之时。
现在回头来看以前困扰我的问题,其实也并没有什么,这样你才能感觉成长

总的来说第三、四天挺苦闷,但也是必经之路


第五、六、七天及体悟:

经过前四天,基本上语法、控件也就熟悉了,接下来统一说一下:
第五天可以说非常有料,网上很少有详细分析Flutter怎么布局的
前困扰我的问题,其实也并没有什么,这样你才能感觉成长

总的来说第三、四天挺苦闷,但也是必经之路


第五、六、七天及体悟:

经过前四天,基本上语法、控件也就熟悉了,接下来统一说一下:
第五天可以说非常有料,网上很少有详细分析Flutter怎么布局的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flutter是一种跨平台的移动应用开发框架,它使用Dart语言进行编写。在Flutter中,可以通过自定义控件来实现特定的功能或者界面效果。下面是Flutter自定义控件开发的指南: 1. 创建一个新的控件类:在Flutter中,可以通过继承StatefulWidget或者StatelessWidget来创建一个新的控件类。StatefulWidget是有状态的控件,可以根据需要更新状态并重新渲染界面;StatelessWidget是无状态的控件,一旦创建就不会再改变。 2. 实现build方法:在控件类中,需要实现一个build方法,该方法返回一个Widget对象,用于描述控件的外观和行为。可以使用Flutter提供的丰富的Widget库来构建界面,也可以自定义绘制逻辑。 3. 添加属性:通过在控件类中定义属性,可以让用户在使用该控件时传入不同的参数,从而实现控件的可配置性。可以使用构造函数来接收属性,并在build方法中使用这些属性来构建界面。 4. 处理用户交互:如果需要处理用户的点击、滑动等交互操作,可以在控件类中添加相应的回调函数,并将其传递给子控件。子控件可以通过调用回调函数来通知父控件发生了交互事件。 5. 更新状态:如果创建的是有状态的控件,可以通过调用setState方法来更新控件的状态,并触发界面的重新渲染。在setState方法中,可以修改控件的属性值,然后Flutter会自动调用build方法来重新构建界面。 6. 使用自定义控件:在其他地方使用自定义控件时,只需要创建该控件的实例,并将其添加到界面中即可。可以通过设置属性来配置控件的外观和行为。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值