重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

去除flutter广告,flutter 广告联盟

Flutter 开发笔记

下面这种情况下,为 InkWell 设置的 splashColor 不会生效:

专注于为中小企业提供网站设计制作、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业黄浦免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

需要用 Material 去除背景色,然后将颜色设置在 InkWell 外部:

在 Dialog builder 中使用 WillPopScope 禁用返回键返回:

注意:使用此方法同时也会禁用 iOS 上的手势滑动返回功能,推荐判断平台后再使用。

修改对话框中的复选框状态,最简便的方法是通过 Element 中的 markNeedsBuild 方法:

当然,更推荐的做法是通过 StatefulBuilder ,然后就可以在 Dialog 中调用 setState 方法了,不过在调用 setState 时需要判断 Dialog 是否已经关闭,否则会造成 setState() called after dispose() 的错误,可以通过添加一个标志位来解决,如下:

在 Web 中加载网络图片有时会失败,遇到这样的报错: Exception caught by image resource service... ,造成该错误的原因通常是,图片跨域了(见 跨域资源共享 )。最简单的解决办法是, 使用 HTML 渲染加载 ,而不是默认的 CanvasKit。

Flutter 中所有的 list 默认都是没有 ScrollBar 的,必须使用 ScrollBar 组件。ScrollBar 组件通过监听 ScrollView 的 ScrollNotification 来刷新位置,所以 List 的长度必须是固定的。

当使用 WebView 等高度不定的组件时会出现内容被截断的情况,通常可以使用 NestedScrollView 来解决该问题,需要在 WebView 外部嵌套 SingleChildScrollView。

虽然使用了缓存,而且也是用 builder 加载图片的,但是发现一个现象:滑动屏幕后图片短暂消失并重新加载了。图片高度很高时这种现象更加明显,其原因是超出屏幕范围一定距离的组件被重新渲染了。解决方法是在 ListView 上设置 cacheExtent 参数:

该参数的作用是改变超出屏幕高度后继续渲染的范围(以像素为单位),比如设置成 9999 后意味着超出屏幕 10000 像素以内的内容都会被保留下来。

借助 IntrinsicHeight 组件:

另外,IntrinsicHeight 还可以用于 Dialog 或者 BottomSheet 中,使得其中的元素 显示内在元素的高度 ,从而避免元素因为约束的存在而不显示或者高度太高(比如在使用了 Column 或者 Row 的时候)。

在通过 Uri 的 queryParameters 获取 query 参数时,发现有些链接会抛出下面异常:

造成该异常的原因是 Uri 默认使用 utf-8 解码超链接字符串,如果链接中包含非 utf-8 字符,就会造成上面的错误,相关 issue 见: issue #31621 。目前该 issue 处于 open 的状态,暂时的解决办法是,在所有使用到 queryParameter 的地方用 try..catch 捕捉可能抛出的异常。

Flutter 开发非常依赖各种官方或第三方的插件,而在使用这些插件时多少都会遇到一些问题,大部分问题都可以通过搜索和查找 issue 来解决。这里记录下一些我在使用部分插件时遇到的问题及其解决方法。

目前该库没有图片加载完成的回调(见 issue #545 ),不过我们可以通过在 imageBuilder 中来添加回调:

这是一个应用内更新插件,安卓 10 以上安装时需要在 manifest 中添加以下内容:

目前功能最强大的 WebView 插件,基本能满足绝大部分移动端网页加载的需求,而且可定制化程度高。

一般通过 CookieManager 修改 Cookie,拦截请求并修改请求对象的 Header 不会生效。

InAppWebViewOptions 的 userAgent 只在 iOS 上生效,而 applicationNameForUserAgent 只在 Android 上生效,所以最好的做法是分平台设置 InAppWebViewOptions ,而且需要注意,由于设置 userAgent 后会覆盖默认的 UserAgent,所以如果需要在默认的 UserAgent 上添加其它参数,iOS 上需要通过 InAppWebViewController.getDefaultUserAgent() 获取默认 UserAgent 参数,而 Android 不需要添加。

如果图片源或者请求是 http 的,为了在 Android 上正常加载请求,必须在 AndroidInAppWebViewOptions 中将 mixedContentMode 设置为 AndroidMixedContentMode.MIXED_CONTENT_ALWAYS_ALLOW 。

当我们想要设置全屏图片的时候,由于默认的 Constraint 会将图片居中显示,所以图片四周会留有空隙。为了去除这个限制,我们需要 Xcode 中打开 LaunchScreen.storyboard,然后在 View Controller 的 View 和 LaunchImage 上的 Safe Area 去掉。

具体设置方法:右侧 Inspector 面板 Show the Size inspector 解选 Layout Margins 中的 Safe Area Relative Margins,拖动图片占满全屏,然后根据 View Controller Scene 的 Warning,更新 Constraint 就可以了。

在集成某些三方库之后,在使用命令行运行 iOS 模拟器的时候可能会遇到下面这个报错:

这是因为 iOS 模拟器未来将会兼容 arm64 架构,但是目前还不支持,所以我们需要修改 Build Setting 使得能够在 x86_64 的模拟器上运行,操作步骤见 这里 。

跪求经典语录(不要全部都是名人名言、要有道理、有意思的)

1】 走近原野,才能饱赏春天的美色;融入江河,才能感知夏水的温柔;

采摘硕果,才能品尝秋天的味道;走过寒冬,才能感知春天的温暖!

2】春可赏绿,夏可玩水,秋可品菊,冬可滑雪。热爱生活,人生四季永远充满阳光!

3】 没有永远的春天,却有永远的春意;没有永远的缠绵,却有永远的思念;

没有永远的成功,却有永远的追求;没有永远的年青,却有永远的青春!

4】 生活可以没有鱼肉,但却不能没有创意;

学习可以没有纸笔,但却不能没有思考;

交友可以没有烟酒,但却不能没有真诚;

赚钱可以没有利润,但却不能没有良心。

5】人生无需后悔,逝去的事就像一阵风;

人生不需要遗憾,该来的终究还是要来;

人生不需要懊恼,愁白的头发难以再黑;

人生不需要哀叹,丧失自信就将失去一切!

6】生命不是一场赛跑,而是一次旅行。比赛在乎终点,而旅行在乎沿途风景。

7】如果事前多些思考,那么事后就会少点遗憾;

如果少年多些努力,那么年老就会多点欣慰;

如果人生多点自信,那么事业就会多点成功;

如果头脑多点创意,那么生活就会多些色彩;

如果对别人多些爱心,那么你就会多些朋友;

如果在谈笑中多点幽默,那么朋友就会多点笑声;

如果对事业多点奉献,那么你就会多点伟大。

8】好心情才会有好风景,好眼光才会有好发现,好思考才会有好主意。

9】安乐给人予舒适,却又给人予早逝;劳作给人予磨砺,却能给人予长久。

10】人可以不美丽,但要健康;人可以不伟大,但要快乐;人可以不完美,但要追求。

11】用知识的浪花去推动思考的风帆,用智慧的火星去点燃思想的火花,

用浪漫的激情去创造美好的生活,用科学的力量去强劲腾飞的翅膀!

12】只有使自己自卑的心灵自信起来,弯曲的身躯才能挺直;

只有使自己懦弱的体魄健壮起来,束缚的脚步才能迈开;

只有使自己狭隘的心胸开阔起来,短视的眼光才能放远;

只有使自己愚昧的头脑聪明起来,愚昧的幻想才能抛弃!

13】不点燃智慧的火花,聪明的头脑也会变为愚蠢;

不践行确立的目标,浪漫的理想也会失去光彩;

不珍惜宝贵的时间,人生的岁月也会变得短暂;

不总结失败的经验,简单的事情也会让你办砸。

14】宠爱的出发点是爱,落脚点却是恨;

嫉妒的出发点是进,落脚点却是退;

梦幻的出发点是绚(烂),落脚点却是空;

贪婪的出发点是盈,落脚点却是亏。

15】没有激情,爱就不会燃烧;没有友情,朋就不会满座;

没有豪情,志就难于实现;没有心情,事就难于完成。

16】我们缺少的不是机遇,而是对机遇的把握;我们缺欠的不是财富,

而是创造财富的本领;我们缺乏的不是知识,而是学而不厌的态度;

我们缺少的不是理想,而是身体力行的实践。

17】有了成绩要马上忘掉,这样才不会自寻烦恼;

有了错误要时刻记住,这样才不会重蹈覆辙;

有了机遇要马上抓住,这样才不会失去机会;

有了困难要寻找对策,这样才能迎刃而解。

18】你可以不高尚,但不能无耻;你可以不伟大,但不能卑鄙;

你可以不聪明,但不能糊涂;你可以不博学,但不能无知;

你可以不交友,但不能孤僻;你可以不乐观,但不能厌世;

你可以不慷慨,但不能损人;你可以不追求,但不能嫉妒;

你可以不进取,但不能倒退。

19】生活需要游戏,但不能游戏人生;生活需要歌舞,但不需醉生梦死;

生活需要艺术,但不能投机取巧;生活需要勇气,但不能鲁莽蛮干;

生活需要重复,但不能重蹈覆辙。

20】把工作当享受,你就会竭尽全力;把生活当乐趣,你就会满怀信心;

把读书当成长,你就会勤奋努力;把奉献当快乐,你就会慷慨助人。

21】最美的不一定是最可爱的,最可爱的才是最美的;

最好的不一定是最合适的;最合适的才是最好的;

最高大的不一定是最受尊敬的,最受尊敬的才是最高大的;

最优美的不一定是最动听的,最动听的才是最优美的。

22】有的人不管年纪多大,却永远年轻;有的人不管是荣是辱,却波澜不惊;有的人不管是富是贫,却朴实为人;有的人不管受讥遭讽,却依然阔步前行;有的人不管自己位有多卑,却永远惦念着祖国母亲!

23】人生是一本书。有的写得精彩,有的写得平庸;有的写得厚道,

有的写得轻薄;有的写得恢弘,有的写得小气;有的写得平顺,

有的写得曲折;有的留下光彩,有的留下遗憾;有的留有思考,有的只剩空白!

24】有一个清醒的头脑比有一个聪明的头脑更重要;

有一种良好的习惯比有一种熟练的技巧更实用;

有一股青春活力比有一副健全的臂膀更有力;

有一身勇气和胆识比有一门知识更强劲。

25】感动往往发生在一刹那间:一个眼神可能让你忆念一世;一次资助可能让你感动一生;一句祝福可能让你温馨一世;一点宽容可能让你感激终生。

26】健康的才是美丽的,合适的才是最好的,常新的才是迷人的,

平凡的才是伟大的,坚韧的才是长久的,真实的才是永恒的。

27】世间的事情都是如此:当你刻意地追求时,它就像蝴蝶一样振翅飞远;

当你专心致志之时,意外的收获已悄悄来到你的身边!

28】你可以用投机的方式赚到财富,却无法从财富中获得满足;

你可以用欺骗的方法获得女友,却无法从女友心中获得爱情;

你可以用作弊的手段获取高分,却无法从书本中获得知识;

你可以用金钱买到荣誉,却无法从百姓口中获得名声。

29】虽然我们不能决定自己生命的长度,但可以拓宽它的宽度;

虽然我们不能改变容貌,但可以展现笑容;

虽然我们不能控制他人,但可以掌握自己;

虽然我们不能预知明天,但可以把握今天;

虽然你不能样样顺利,但你可以事事尽力。

30】梦虽虚幻,却是自己的梦想;位虽低微,却是自己的岗位;

屋虽简陋,却是自己的家;志虽渺小,却是自己的追求。

31】做人可以不高尚,但不能无耻;为人可以不伟大,但不能卑鄙;

头脑可以不聪明,但不能糊涂;生活可以不乐观,但不能厌世;交友可以不慷慨,但不能损人。

32】生活的真谛在于创新,生活的理想在于远大,生活的艺术在于选择,生活的步履在于踏实,生活的乐趣在于追求,生活的安乐在于平淡。

33】过于欣赏自己,就发现不了别人的优点;过于赞赏别人的优点,就会看不见自己的长处。

34】如果你盼望明天,那必须先脚踏现实;如果你希望辉煌,那么你须脚不停步。

35】每一个人都拥有生命,却并非每个人都能读懂生命;每一个人都拥有头脑,却并非每一个人都能善用头脑。只有热爱生命,善于动脑的人,才算得上真正拥有生命。

36】拥有了一颗赤城的心,便拥有了朋友;拥有了一颗善良的心,便拥有了友爱。

37】不要悲观地认为自己很不幸,其实比你更不幸的人还很多;

不要乐观地认为自己很伟大,其实你只是沧海之一粟。

38】财富是一种寄存,你不能将其带走;荣誉是一道亮光,你无法将其留住;

成功是一颗硕果,你无法四季品尝;生命是一种过程,你不能让其停步。

39】事物是辩证的,当你得到一些东西时,同时也会让你失去另一些东西;

当你失去一些东西时,同时也会让你得到一些东西。

40】弱者只有千难万难,而勇者则能披荆斩棘;

愚者只有声声哀叹,智者却有千路万路。

41】学会赞赏吧,它能拉近朋友间的距离;乐于赞赏吧,它能鼓励朋友不断上进;自我赞赏吧,它能激发自身的潜能。

42】在人之初,别拿人当幼欺;在人之暮,别拿人当弱辱;

在人之前,别拿己当众扬;在人之后,别拿人当猴谤;

在人之上,别拿人不当人;在人之下,别拿己不当人。

43】当你习惯过一种日子,那么,你的一生只过上一天;如果你生活常新,那么你每一天都会过得很精彩。

44】什么都可以丢,但不能丢脸;什么都可以再来,唯独生命不能再来;

什么都可以抛去,唯有信仰不能抛去;什么都可以接受,唯独屈辱不能接受。

45】你可以忘掉失败,但不能忘掉教训;你可以忘掉昨天,但不能忘记历史;

你可以忘掉苦难,但不能忘却艰辛;你可以忘掉伤疤,但不能忘却耻辱。

46】一切皆可以变,唯有我们的理想不能变;一切都可以长,唯有我们的傲气不可以长;

一切都可以老,唯有我们年轻的心不能老;一切都可以退,唯有我们前进的脚步不能退。

47】失去的我们不妨让其失去,因为它可让我们少些惆怅;得到的我们不妨少些满足,因为它可让我们多些清醒。

48】如果你的童年不游乐,少年不好学,青年不立志,中年不创业,那么,你的生命就将随着年老而逝去。

49】2009:不求牛气冲天,只求默默耕耘;不盼牛高马大,只盼俯首成孺子牛!

50】生命因运动而精彩,生活因乐趣而充实,

学习因思考而深刻,交友因真诚而持久!

51】当你对自己微笑时,世上没烦事能纠缠你;

当你对自己诚意时,世上没人能欺骗你。

52】活在别人的掌声中,最易迷失自己;处在别人的关爱中,最易弱化自己。

53】敢于面对困境的人,生命因此坚强;敢于挑战逆境的人,生命因此茁壮。

54】要感谢给你提意见的人,他使你成熟;

要感谢给你造困境的人,他使你坚强。

55】成功不会向我们走来,我们必须走向胜利;

智慧不会向我们走来,我们必须勤奋思索;

快乐不会向我们走来,我们必须用心体验。

56】运动使人充满生机活力,音乐使人充满浪漫快乐,思考使人充满智慧理智。

57】没有运动,生活等于昏睡;没有思考,生活等于盲从;

没有节制,生活等于毁灭;没有快乐,生活等于凝固。

58】人生中最艰难的是选择;工作中最困难的是创新;

生活中最痛苦的是自扰;做人中最苦恼的是委屈。

59】一次专心学习胜过百次囫囵吞枣;一次深思熟虑胜过百次轻率行动;

一次真诚相助胜过百次怜悯同情;一次见义勇为胜过百次豪言壮语!

60】人生中最大的乐趣是奉献;思维中最美的花朵是智慧(之花);

前进中最快的脚步是继续;朋友中最好的记忆是笑声!

61】向父母索取愈少愈好,向社会索取愈少愈好;

向书中索取愈多愈好,向智慧索取愈多愈好。

62】未来的东西就是这样:当你墨守成规时,它永远与你的昨天一样;

当你积极进取时,就会化作灿烂无比的春光。

63】要留住青春,最好的办法就是永葆年轻心态;

要留住健康,最好的办法就是坚持锻炼身体;

要保持快乐心情,最好的办法就是助人为乐;

要保证不犯错,最好的办法是三思而后行。

64】我们要为快乐而生活,为自信而前行,为辉煌而攀登,为理想而奋斗,

为事业而尽力,为祖国而献身,这样才不枉此生。

65】人生没有真正的完美,只有不完美才是最真实的美;

人生没有一帆风顺,只有披荆斩棘才能路路顺;

人生没有永远的成功,只有在挫折中站起才是真正的成功;

人生没有永恒,只有闪光的人生才算是生命的永恒。

66】一个人只有保持快乐和满足,才能远离痛苦;

一个人只有保持青春活力,才能激流勇进;

一个人只有坚持学习,才能与时俱进;

一个人只有坚持奋进,才能永远年轻。

67】生活中可以没有诗歌,但不能没有诗意;

行进中可以没有道路,但不能没有前进的脚步;

工作中可以没有经验,但不能没有学习,

人生中可以没有闪光,但不能有污迹。

68】积极人生看到的世界是一片阳光,消极人生看到的世界是一片黑暗;积极人生感受到的生活是无比快乐,消极人生心里感觉到的仅是一丝丝悲凉。

69】别为失败找个理由,这样容易失去自信;要为失败找个对策,这样才能产生力量。

70】名人之所以能够成为名人,是因为他们在同伴嬉乐或休息时不停地攀登;凡人之所以成为凡人,是因为别人忙于攀登时他却安然入睡。

71】没有辛勤的汗水,就没有成功的泪水;没有艰辛的付出,就没有丰硕的果实;没有刻苦的训练,就没有闪光的金牌。

72】要改造世界,得先改造自己;要成就事业,得先劳苦自身;要胜利登顶,得先奋力攀登。

73】从未失败就意味着从未成功;从未挫折就意味着从未胜利;从未反思就意味着从未经历;从未跌倒就意味着从未登顶。

74】路由“足”与“各”组成,所以才“人各有路”;正因为“人各有路”,所以才人各有成。

75】最快的脚步不是跨越,而是继续;最慢的步伐不是小步,而是徘徊;最好的道路不是大道,而是小心;最险的道路不是陡坡,而是陷阱。

76】人生道路上既有坦道,又有泥泞;既有美景,又有陷阱,只有坚定信念又勇往直前的人才能到达胜利的终点。

77】人生十字路口是一道选择题,谨慎选择才能确保正确方向,糊涂选择就易步入歧途,放弃选择就会迷失方向。

78】开拓者独辟蹊径,保守者因循守旧,探索者勇攀高峰,执着者勇往直前。

79】瞩目远方,你才会加快步伐;观赏风景,你才会步履轻盈;结伴同行,你才能欢歌笑语;风雨兼程,你才能成功登顶。

80】在人生中,有时最好走的路不一定是大路,而是小路;在现实中,有时最便捷的路不一定是直路,而是折路。

81】什么路都可以走,唯独绝路不能走;什么路都可以选择,唯独歧途不能选择。

82】人生道路虽很曲折,却很美丽。只要你细心观看,就能饱尝沿途美景。

83】在人生道路上,走上坡路要昂首阔步,走下坡路要谨小慎微,走阳关道要目视前方,走羊肠路要俯视脚下。

84】在人生征途中有许多弯路、小路、险路、暗路,只有意志坚定且永不停步的人,才有希望到达胜利的远方。

85】没有清醒的头脑,再快的脚步也会走歪;没有谨慎的步伐,再平的道路也会跌倒。

86】要留下人生足迹,就必须一步一个脚印;要少走人生弯路,就必须三思而行。

87】迈开脚步,再长的路也不在话下;停滞不前,再短的路也难以到达。

88】行路不仅仅在于快慢,还在于是否能够持续;前进不仅仅在于速度,更在于能否保持正确方向。

89】生活不能游戏人生,否则就会一事无成;生活不能没有游戏,否则就会单调无聊。

90】做人要地道,好人有好报;做事要踏实,步履才坚实!

91】听从命运安排的是凡人;主宰自己命运的才是强者;没有主见的是盲从,三思而行的是智者。

92】财富是一时的朋友,而朋友才是永久的财富;荣誉是一时的荣耀,做人才是永久的根本;学历是一时的知识,学习才是永久的智慧!

93】人生难免经受挫折,风雨过后就是彩虹;生活难免遭受苦难,雨过天晴终有阳光。

94】“吃亏是福”不但是一种人生策略,更是一种生活智慧。吃小亏不但可以赢得人们的景仰,还可学到人生大智慧。

95】受伤害能磨练你的心志,受欺骗能增长你的见识,受遗弃会教你自立的本领,受批评能助长你的智慧。

96】给自己找茬是诊断,给自己找事是磨练,给自己剖析是知己,给自己嘲笑是激励!

97】生活是首歌:爱情是轻音乐,工作是交响乐,奋斗是摇滚乐,应酬是流行乐,朋友是通俗曲,事业是进行曲。

98】“天生我材必有用”,人生没有休止符;前进路上大步走,“天下谁人不识君”!

99】生活六“朋友”:信心是支柱,目标是动力,三思是舵手,运动是健康,知识是财富,知足是大乐。

100】信心要一杆插到底,夫妻要两人齐协力,行动要三思而后行,交友要四面又八方,生活要五颜加六色,邻里要七窍又玲珑,做事要八仙来过海,说话要一言即九鼎,这样生活才能满意十分。

101】有时多点糊涂会少点烦事,有时多点知足会少点烦恼,有时少点计较会多点平安,有时多点吃亏会多点平安。

102】想想美事,生活的烦恼就易离去;想想成功,生活的挫折就不在话下;思思亲朋,心底里的力量就会涌起;思思理想,前进的脚步就会更加坚定;忆忆英雄,克服困难的勇气就会激增;忆忆祖国,工作的热情就会倍增。

103】生活就是奋斗,只有勇于攀登才能创造辉煌;生活就是创新,只有与时俱进才能跟上时代;生活就是付出,只有吃苦流汗才能实现理想;生活就是享受,只有品尝人生才能感知生活的快乐。

104】生活中要学会享受:享受工作的欢快,享受朋友的笑声,享受家人的温馨,享受创造的快慰,享受果实的甜美。

105】节制是生活的艺术。如果你能节制烟酒,节制喜悲,节制贪欲,节制冲动,那么,你的生活就会充满阳光。

106】拥有一个健康的体魄将使你的生活更具活力;拥有一个清醒的头脑将使你的人生更具理智;拥有一群朋友将使你的生活更具快乐;拥有一颗爱心将使你的生活更具和谐。

107】好运动者健,好思考者智,好助人者乐,好读书者博,好旅游者悦,好追求者成。

108】 认认真真学习,清清静静思考,踏踏实实做事,勤勤勉勉工作,淡淡泊泊生活,真真诚诚交友,悠悠闲闲散步,清清白白做人。

109】好身体是锻炼出来的,好头脑是三思出来的,好习惯是养成出来的,好品德是自律出来的,好才艺是磨练出来的,好脚板是行走出来的。

110】生活中的言语很神奇,有时长说不如短说,有时短说不如不说,有时多说不如少说,有时正说不如反说,有时当面说不如背后说。

111】生活中的满足很奇妙,有时海鲜不如面包甜美,有时坐轿车不如骑自行车舒服,有时买菜不如种菜快乐,有时酒宴不如独斟快活。

112】★什么是幸福?没有痛苦就是幸福。什么是快乐?内心愉悦就是快乐。什么是成功?不懈追求就是成功。什么是前进?没有止步就是前进。什么是真诚?实事求是就是真诚。什么是朋友?危难相助就是朋友。什么是伟大?能给人幸福就是伟大。

113】★人生四大乐:青春活力,创业有成,家庭和顺,邻里和谐。人生四大悲:病魔缠身,患得患失,重蹈覆辙,一事无成。

114】★工作要像红色那样热烈,邻里需要蓝色那样温馨,爱情要像粉色那样迷人,做人要像白色那样纯洁,环境要像绿色那样环保,生活要像彩云那样多姿,生命要像花朵那样绚烂。

115】★专心使你成就事业,童心使你永远年轻,信心使你永不停步,善心使你赢得赞赏,雄心使你成功登顶,恒心使你百折不挠,爱心使你高朋满座,宽心使你愉快轻松,热心使你一生美名。

116】★人生须“五自”:自知、自信、自醒、自立、自律。生活须“六戒”:戒纵、戒毒、戒懒、戒愁、戒独、戒从。

117】★面对生活选择微笑,面对朋友选择真诚,面对失败选择奋起,面对成绩选择谦虚,面对孤独选择读书,面对欺骗选择反思,面对不幸选择抗争,面对弱者选择帮助,面对恶人选择揭露,面对病魔选择驱除,面对死亡选择自然。

118】★生活的“生”字由“牛”和“一”组成,寓意牛辛勤耕耘一生一世。所以,我们要一如既往,如牛那样勤勉终生。

119】★生活充满着辩证法:工作忙说明你还没有失业,竞争失败说明你雄心犹存,恋爱失意说明你还在追求,误入歧途说明你还在奔走。

120】★最不幸的生活是生活在不幸的回忆中,最不科学的生活是生活在不良的习惯里,最不理想的生活是生活在覆辙中,最绝望的生活是亲手埋葬了自己的理想。

121】★生活不要过分追求档次,只要心里踏实就最真实。正如穷人吃豆腐和富人吃海鲜一样美,大款穿貂皮和百姓穿棉衣一样暖,富人驾轿车和市民踏单车一样悠闲,在林荫大道漫步和乡间小道穿梭一样快乐。

122】★生活=信念+奋斗,健康=(好)习惯+锻炼,乐趣=追寻+浪漫,满足=淡泊+体验,创业=执着+开拓。

123】★多想想父母的困苦就会满足今天的生活,多看看农民种田的辛苦就会了解生活的艰辛,多听听病人的呻吟就会懂得健康的可贵,多瞧瞧冠军的汗水就会明白金牌的付出。

124】★为人要有风度,站立要有高度,做事要有法度,工作要有热度,思维要有深度,待人要有温度,嗜好要有适度,行进要有速度。

125】★既当“博士”,又当“搏士”,这样才能既博学多才,又勇猛直前!

126】★个人最大的资产是健康,健康最重要的内容是体魄,体魄最关键的部位是头脑,头脑最具价值的东西是思想。

127】★心往哪里想,哪里就会有亮光;心往哪里思,哪里就会有奇迹;心往哪里移,哪里就会有新意;心往哪里放,哪里就会有力量。

128】★失败并不意味你无能,有时挫折反而会引导你走向成功;胜利并不意味你超能,有时顺利反而会诱导你滑入深渊。

129】★欲望就是这样的东西:你越得到它就越感到不足,你越失去它就越感到知足。

130】★最使人疲惫的往往不是道路的遥远,而是你心中的郁闷;最使人颓废的往往不是前途的坎坷,而是你自信的丧失;最使人痛苦的往往不是生活的不幸,而是你希望的破灭;最使人绝望的往往不是挫折的打击,而是你心灵的死亡。

131】★幸运之神的降临往往是因为你多坚持了一会儿,多迈出了几步,多找了一条路,多拐了一个弯。

132】路漫漫我们需“上下而求索”;诱多多我们需走好每一步;事烦琐我们要学会忙里偷闲;景旖旎我们要好好欣赏。

133】既然我们选择了峰顶,就要努力登攀;既然我们投身钟爱的事业,就要尽力而为;既然我们抛弃了幻想,就要脚踏实地;既然我们来到了世上,就要好好的生活。

134】人生的生物意义在于健康,人生的生活意义在于快乐,人生的社会意义在于奉献。

135】生活是一首歌,吟唱着人生的节奏和旋律;生活是一条路,延伸着人生的足迹和希望;生活是一杯酒,饱含着人生的清醇与忧愁;生活是一团麻,交织着人生的烦恼与快乐;生活是一幅画,描绘着人生经历的红绿蓝;生活是一团火,燃烧着人生的憧憬和梦想。

136】有一种变化叫成长;有一种力量叫坚韧;有一种责任叫付出;有一种幸福叫安康;有一种胸怀叫忍让,有一种快乐叫工作,有一种关心叫鞭策,有一种收获叫舍弃。

137】幸福就是这样简单: 口渴了喝杯茶水润润喉,无聊时与朋友聊聊天,饥饿时买个面包填填肚,烦恼时听听音乐轻轻松,疲倦时靠在椅上打个盹,失意时在公园散散步。【摘自林宝铁网站】

Flutter去除底部虚拟按键方法

在Scaffold中加入这一行 resizeToAvoidBottomPadding:false

网上有这个方法SystemChrome.setEnabledSystemUIOverlays([]); 去除顶部和底部,但是在小米4平板上底部还是有灰色的高度,加上上边的方法就好了 

Flutter:快速创建简单闪屏页

近来闲暇时间一直在做Flutter,闪屏页是一个比较常见的需求,网上的闪屏页教程大部分是那种类似于广告页,而非iOS中的 LaunchScreen 性质的闪屏页.按照原来的方案我们要配置闪屏页的话,我们需要同时配置两端的闪屏页,那么有没有比较简单的方案来配置闪屏页呢? 毋庸置疑,当然是有了,那就是Flutter的插件 - flutter_native_splash . 接下来我们就来看一下具体应该怎么使用这个插件.

首先把 flutter_native_splash 导入到工程的 pubspec.yaml 中.这里需要注意的是需要放在 dev_dependencies 下,而不是 dependencies .具体如下所示.

接下来我们就来配置 flutter_native_splash ,在配置之前我们看一下 flutter_native_splash 的可配置项.

例如,我现在只有一个logo图片,那么我想生成iOS和android两端的闪屏页,这时候我只需在 pubspec.yaml 如下设置即可.

当然了,如果你有其他配置可以自行进行添加.

配置完成了,我们该如何生成呢?这时候需要我们打开终端 cd 到我们的工程目录下.如果是Android Studio 或者 VSCode 默认就是在当前工程目录下.

然后我们需要执行下面的三个命令来生成闪屏页

每一次都敲三个命令实属麻烦,我们把上诉的三个命令整合成一个命令,如下所示.

那么,我们不想使用该插件生成的闪屏页该怎么办呢?我们只需要执行下面命令即可.

注:每一次更换图片都是需要重新执行命令重新生成.

OK,上面就是关于 flutter_native_splash 的使用全部内容,其实比较简单,如果需要定制化的,建议还是各自平台配置各自的闪屏页.如果有任何问题欢迎在评论区批评指导,感谢大家了.

Flutter视频播放器,简洁!

注:亮度调节和音量调节gif无法体现,功能是ok的,其次默认Icon锁的close和open实在难以分辨。

环境:Flutter 2.8.1 channel stable ;Dart 2.15.1

需要音频播放器的看这里: Flutter音乐播放器

重点说下这个工具类,因为视频播放,涉及到状态改变有很多,笔者刚开始选择使用 InheritedWidget 来在众多的widget之间共享数据。但是总感觉这样有点繁琐,且不很优雅!

这里非广告,如果是使用 GetX 就很简单了,笔者也使用了 GetX 进行封装了,一泻千里的赶脚!,但是笔者还是那句话:刚开始接触Flutter的开发者不是很建议使用 GetX ,可以先熟悉下Flutter状态管理的基础原理再行使用。而且为了尽量简洁,还是不引入其他的第三方了。

我们选择对第三方插件进行封装的目的不外乎这几个:

于是笔者就写了一个工具类 VideoPlayerUtils ,专门且只用来处理播放器的所有业务。包括暂停、播放、跳转、调节音量、调节亮度、切换视频等操作。在所有的widget中不会引用关于 video_player 或其他第三方插件的任何信息, VideoPlayerUtils 负责widget与播放器之间的所有操作交互。后续优化迭代或更换播放器插件时,只需针对这个工具类进行修改,对所有widget不会有任何的影响,大大的解耦合了。

其中 VideoPlayerState :

提供以上的公共属性,可以通过 VideoPlayerUtils 来获取对应的值,使用 get 只读,使外界不会误修改这些属性,以保证数值的安全性。开发者可根据自身需要自行添加属性。

提供以上方法来处理播放器的所有业务。同样的开发者可根据自身需要自行添加或修改。

重点说下这个方法,是整个业务的核心方法,控制视频的播放或暂停。开发者只要遇到播放或暂停是均可调用此方法,具体是播放或暂停,内部根据传入的 url 自行判断,开发者不需要关心。

切换新视频也是使用此方法,传入的 url 与上次不一致,自动切换新视频。笔者可根据 statusListener 来监听播放状态的改变,以此处理自身逻辑。

这个也需要提下,视频播放器在播放新视频时会异步初始化,一般我们的操作是在 initState() 初始化,成功后再 setState() 。这里笔者遇到一个让人蛋疼的问题:

我们看 video_player 的使用:

VideoPlayer(controller) :widget中已经持有了controller。本来笔者封装的目的就是为了让widget与controller的之间解耦合。但此时的笔者。。。。

放弃不是不可能放弃的,这辈子都不会放弃的!

于是笔者取了巧,写了一个初始化监听器 initializedListener ,包换2个参数: bool,Widget ,初始化是否成功;其中widget为初始化成功返回需要展示的播放器UI,失败默认返回 const SizedBox() 。

到这里就可以简单使用了:

没看错,视频播放就是这么简单。

如果有更多的业务功能,笔者也按照自己的需求写了一套,同样的开发者可根据自身需要自行添加或修改。

VideoPlayerGestures 主要是处理手势的,比如快进、快退等跳转播放;左侧上下滑动调节亮度;右侧上下滑动调节音量;单击是否开启沉浸式播放,所有widget的隐藏与显示;双击播放、暂停等。

哦,还有 PercentageWidget 也放到这个文件下了,就是这玩意:

因为显示的百分比与手势相关,随着手势移动而更新。开发者可自行处理。

笔者处出于简单考虑,就按照整个UI的位置命名了。瞅一眼就知道是啥玩意。

同样的开发者可根据自身需要自行添加或修改。

就是这玩意:

同样的开发者可根据自身需要自行添加或修改。话说这个锁的 Icon 的open和close是真的难分辨!

就是这玩意:

同样的开发者可根据自身需要自行添加或修改。

这玩意是自定义的,别问,问就是跟产品干一架落了下风

主要就是自定义这玩意:

同样的开发者可根据自身需要自定义。

注:这里没有添加缓冲的进度,开发可查看 video_player 中的源码 VideoProgressIndicator ,按业务自行定义。

这玩意就是整合以上的widget,再考虑下全屏的安全区域,没啥东西。开发者可自行处理!

具体的实现监听器的思路, 看这里 。

自此一个漂亮的Flutter视频播放器就已经结束了。如果您觉得对您有些许帮助的话,欢迎 Star !

flutter去除Appbar的阴影、键盘遮挡下部输入框

默认的appbar下方会自带一个阴影效果。

要去掉这个阴影的话需要在appbar中设置:

核心的思想就是在column中使用expend包裹一次然后child使用listView,这样的话输入框被聚焦的时候键盘就会把页面顶上去。


分享名称:去除flutter广告,flutter 广告联盟
网站路径:http://cqcxhl.cn/article/dssjjdh.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP