
flutter
文章平均质量分 84
flydean程序那些事
懂程序更懂你!微信公众号:程序那些事 个人主页:www.flydean.com 最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧,尽在程序那些事!
展开
-
flutter系列之:做一个会飞的菜单
flutter中自带了drawer组件,可以实现通用的菜单功能,那么有没有一种可能,我们可以通过自定义动画来实现一个别样的菜单呢?答案是肯定的,一起来看看吧。'迟日江山丽','春风花草香','泥融飞燕子','沙暖睡鸳鸯',],++i) {Padding(),),在flutter中一切皆可动画,我们只需要掌握动画创作的诀窍即可。原创 2023-06-06 13:46:58 · 626 阅读 · 0 评论 -
flutter系列之:做一个下载按钮的动画
我们在app的开发过程中经常会用到一些表示进度类的动画效果,比如一个下载按钮,我们希望按钮能够动态显示下载的进度,这样可以给用户一些直观的印象,那么在flutter中一个下载按钮的动画应该如何制作呢?一起来看看吧。基本上有4个状态,分别是没有下载,准备下载但是还没有获取到下载的资源链接,获取到下载资源正在下载中,最后是下载完毕。这里我们需要自定义一个DownloadButton组件,这个组件肯定是一个StatelessWidget,所有的状态信息都是由外部传入的。原创 2023-05-24 16:13:21 · 666 阅读 · 0 评论 -
flutter系列之:使用AnimationController来控制动画效果
之前我们提到了flutter提供了比较简单好用的AnimatedContainer和SlideTransition来进行一些简单的动画效果,但是要完全实现自定义的复杂的动画效果,还是要使用AnimationController。今天我们来尝试使用AnimationController来实现一个拖拽图片,然后返回原点的动画。AnimationController是一个很强大的组件,但是使用起来也不是那么的复杂, 我们只需要定义好起点和终点,然后指定动画效果即可。原创 2023-05-17 11:20:09 · 681 阅读 · 0 评论 -
flutter系列之:做一个修改组件属性的动画
什么是动画呢?动画实际上就是不同的图片连续起来形成的。flutter为我们提供了一个AnimationController来对动画进行详尽的控制,不过直接是用AnimationController是比较复杂的,如果只是对一个widget的属性进行修改,可以做成动画吗?答案是肯定的,一起来看看吧。如果你只是希望使用简单的widget动画,那么AnimatedContainer可能是你最好的选择。原创 2023-05-09 14:23:20 · 230 阅读 · 0 评论 -
flutter系列之:如何自定义动画路由
flutter中有默认的Route组件,叫做MaterialPageRoute,一般情况下我们在flutter中进行跳转的话,只需要向Navigator中传入一个MaterialPageRoute就可以了。但是MaterialPageRoute太普通了,如果我们想要做点不同的跳转特效应该如何处理呢?一起来看看吧。如果要实现特定的路由动画,那么需要进行路由的自定义。在flutter中也就是要使用PageRouteBuilder来自定义一个Route。})原创 2023-04-19 16:32:13 · 842 阅读 · 0 评论 -
flutter系列之:在flutter中使用媒体播放器
现在的app功能越来越强大,除了基本的图文之外,还需要各种各样的其他的功能,比如视频,和直播。直播可能会比较复杂,因为涉及到了拉流和推流,需要服务器端的支持,但是视频播放就比较简单了,那么如何在flutter中使用媒体播放器呢?一起来看看吧。这样一个可以播放外部视频的app就做好了,运行之后它的界面是这样的:大家可以在这个播放器的基础上进行扩张,一个属于你自己的视频APP就完成了。原创 2023-03-28 16:41:27 · 3704 阅读 · 0 评论 -
flutter系列之:创建一个内嵌的navigation
我们在flutter中可以使用Navigator.push或者Navigator.pushNamed方法来向Navigator中添加不同的页面,从而达到页面调整的目的。一般情况下这样已经足够了,但是有时候我们有多个Navigator的情况下,上面的使用方式就不够用了。比如我们有一个主页面app的Navigator,然后里面有一个匹配好友的功能,这个功能有多个页面,因为匹配好友功能的多个页面实际上是一个完整的流程,所以这些页面需要被放在一个子Navigator中,并和主Navigator区分开。原创 2023-03-13 15:41:23 · 217 阅读 · 0 评论 -
flutter系列之:在flutter中自定义themes
一般情况下我们在flutter中搭建的app基本上都是用的是MaterialApp这种设计模式,MaterialApp中为我们接下来使用的按钮,菜单等提供了统一的样式,那么这种样式能不能进行修改或者自定义呢?答案是肯定的,一起来看看吧。那么如何使用自定义themes呢?有两种方式。),但是这种操作实际是传入了一个全新的ThemeData,假如我们只想修改部分ThemeData中的数据应该如何处理呢?原创 2023-03-06 11:16:25 · 472 阅读 · 0 评论 -
flutter系列之:Navigator的高级用法
上篇文章我们讲到了flutter中navigator的基本用法,我们可以使用它的push和pop方法来进行Router之间的跳转。在flutter中一个Router就是一个widget,但是在Android中,一个Router就是Activity,在IOS中,一个Router是一个ViewController。Router除了之前讲过的push和pop方法之外,还有一些更加高级的用法,一起来看看吧。原创 2023-02-27 15:29:25 · 589 阅读 · 0 评论 -
flutter系列之:在flutter中使用导航Navigator
一个APP如果没有页面跳转那么是没有灵魂的,页面跳转的一个常用说法就是Navigator,flutter作为一个最为优秀的前端框架,Navigator肯定是必不可少的,那么在flutter中如何使用Navigator呢?一起来看看吧。Navigator是每个flutter app都少不了的组件,希望大家能够掌握。原创 2023-02-20 14:46:48 · 1279 阅读 · 0 评论 -
flutter系列之:使用SliverList和SliverGird
在上一篇文章我们讲解SliverAppBar的时候有提到过,Sliver的组件一般都用在CustomScrollView中。除了SliverAppBar之外,我们还可以为CustomScrollView添加List或者Grid来实现更加复杂的组合效果。今天要向大家介绍的就是SliverList和SliverGird。在CustomScrollView中使用SliverList和SliverGird,可以实现灵活的呈现效果。原创 2023-02-13 15:59:17 · 889 阅读 · 0 评论 -
flutter系列之:flutter中listview的高级用法
一般情况下,我们使用Listview的方式是构建要展示的item,然后将这些item传入ListView的构造函数即可,通常情况下这样做是够用了,但是不排除我们会有一些其他的特殊需求。今天我们会来讲解一下ListView的一些高级用法。ListView是我们在应用中会经常用到的一种widget,希望大家能够灵活掌握。原创 2023-01-03 17:36:21 · 505 阅读 · 0 评论 -
flutter系列之:移动端手势的具体使用
之前我们介绍了GestureDetector的定义和其提供的一些基本的方法,GestureDetector的好处就是可以把任何一个widget都赋予类似button的功能。今天将会通过几个具体的例子来讲解一下GestureDetector的具体使用。以上就是日常手势的基本使用了,我们可以通过GestureDetector,InkWell和Dismissible来和手势进行结合来实现相应的功能。更多内容请参考最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!原创 2022-12-19 20:01:25 · 439 阅读 · 0 评论 -
flutter系列之:如丝般顺滑的SliverAppBar
对于一个APP来说,肯定会有一个AppBar,这个AppBar一般包含了APP的导航信息等。虽然我们可以用一个固定的组件来做为AppBar,但是这样就会丢失很多特效,比如将AppBar固定在顶部,AppBar可以在滑动的过程中进行大小变换等。当然这一切都不需要自己来实现,flutter已经为我们提供了一个非常强大的AppBar组件,这个组件叫做SliverAppBar。简单点说,SliverAppBar就是一个在滑动中可变大小的AppBar,我们可以通过设置不同的参数来实现不同的效果。原创 2022-12-12 17:34:14 · 1149 阅读 · 0 评论 -
flutter系列之:flutter中的变形金刚Transform
虽然我们在开发APP的过程中是以功能为主,但是有时候为了美观或者其他的特殊的需求,需要对组件进行一些变换。在Flutter中这种变换就叫做Transform。flutter的强大之处在于,可以对所有的widget进行Transform,因此可以做出非常酷炫的效果。在Flutter中,Transform本身也是一个Widget,它主要是把变换作用在它的子widget上。我们先来看下Transform的定义和构造函数:可以看到Transform需要transform,origin,alignment,tran原创 2022-12-05 20:58:04 · 995 阅读 · 0 评论 -
flutter系列之:在flutter中使用流式布局
我们在开发web应用的时候,有时候为了适应浏览器大小的调整,需要动态对页面的组件进行位置的调整。这时候就会用到flow layout,也就是流式布局。同样的,在flutter中也有流式布局,这个流式布局的名字叫做Flow。事实上,在flutter中,Flow通常是和FlowDelegate一起使用的,FlowDelegate用来设置Flow子组件的大小和位置,通过使用FlowDelegate.paintChildre可以更加高效的进行子widget的重绘操作。原创 2022-11-28 20:47:35 · 1541 阅读 · 0 评论 -
flutter 系列之:flutter 中的幽灵offstage
我们在使用flutter的过程中,有时候需要控制某些组件是否展示,一种方法是将这个组件从render tree中删除,这样这个组件就相当于没有出现一样,但是有时候,我们只是不想展示这个widget,但是这个组件还是存在的,并且可以接受键盘输入,还可以使用CPU。它和真正的组件唯一不同的就是他是不可见的。这样的组件就叫做Offstage。今天给大家详细介绍一下Offstage的使用。Offstage是一个非常方便的组件,可以用来隐藏我们不需要展示的组件,但是仍然可以获得它的大小。原创 2022-10-31 17:58:23 · 802 阅读 · 0 评论 -
flutter系列之:永远不用担心组件溢出的Wrap
我们在flutter中使用能够包含多个child的widget的时候,经常会遇到超出边界范围的情况,尤其是在Column和Row的情况下,那么我们有没有什么好的解决办法呢?答案就是今天我们要讲解的Wrap。Wrap可以通过使用不同的direction来替换Row或者Column,我们在组件可能会超出范围的时候,就可以考虑使用Wrap了。更多内容请参考最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!原创 2022-10-24 20:13:03 · 952 阅读 · 0 评论 -
flutter系列之:flutter中可以建索引的栈布局IndexedStack
之前我们介绍了一个flutter的栈结构的layout组件叫做Stack,通过Stack我们可以将一些widget叠放在其他widget之上,从而可以实现图像的组合功能,也是日常中最常用的一种组件了。今天我们要介绍的组件是Stack的近亲,叫做IndexedStack,它有什么功能呢?一起来看看吧。从名字可以看出,IndexedStack是给Stack添加了一个index的功能,事实是否如此呢?原创 2022-10-21 17:29:33 · 1097 阅读 · 0 评论 -
flutter系列之:builder为构造器而生
flutter中有很多种Builder,虽然所有的builder都是构造器,但是不同的builder之间还是有很多差距的。今天我们来详细介绍一下Builder,LayoutBuilder,StatefulBuilder这几个builder的使用。本文介绍了三个常用的Builder,大家可以仔细体会。更多内容请参考最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!原创 2022-10-18 10:19:34 · 970 阅读 · 0 评论 -
flutter系列之:把box布局用出花来
flutter中的layout有很多,基本上看layout的名字就知道这个layout到底是做什么用的。比如说这些layout中的Box,从名字就知道这是一个box的布局,不过flutter中的box还有很多种,今天我们来介绍最常用的LimitedBox,SizedBox和FittedBox。这几个box是我们在日常的工作中经常会用到的box。大家可以熟练掌握。更多内容请参考最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!原创 2022-10-14 14:01:31 · 852 阅读 · 0 评论 -
flutter系列之:深入理解布局的基础constraints
我们在flutter中使用layout的时候需要经常对组件进行一些大小的限制,这种限制就叫做constraints,用来控制layout中的组件大小。掌握了constraints才算对layout有了真正的了解,但是flutter中的constraints和我们熟悉的HTML中的constraints区别比较大,所以我们还是需要深入了解flutter中contraints的特性。从上面的具体例子,我们可以看出,虽然我们有通用的Constraint规则,但是具体的表现还是要看不同的widget来定。原创 2022-09-29 18:20:13 · 723 阅读 · 0 评论 -
flutter系列之:查询设备信息的利器:MediaQuery
移动的开发中,大家可能最头疼的就是不同设备的规格了,现在设备这么多,如何才能在诸多的设备中找到合适的widget的位置来进行绘制呢?不用怕,在flutter中为我们提供了一个叫做MediaQuery的利器,大家一起来看看吧。MediaQuery是flutter中一个非常方便的工具,用来检测media的属性情况,根据MediaQuery,我们可以做出更加富有交互性的APP。更多内容请参考最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!原创 2022-09-26 15:28:34 · 1331 阅读 · 0 评论 -
flutter系列之:Material中的3D组件Card
除了通用的组件之外,flutter还提供了两种风格的特殊组件,其中在Material风格中,有一个Card组件,可以很方便的绘制出卡片风格的界面,并且还带有圆角和阴影,非常的好用,我们一起来看看吧。以上就是flutter中Card的使用了,大家可以结合ListTile一起构建更加美观和复杂的系统。更多内容请参考最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!原创 2022-09-23 15:27:23 · 933 阅读 · 0 评论 -
flutter系列之:flutter中常用的Stack layout详解
对于现代APP的应用来说,为了更加美观,通常会需要用到不同图像的堆叠效果,比如在一个APP用户背景头像上面添加一个按钮,表示可以修改用户信息等。要实现这样的效果,我们需要在一个Image上面堆叠其他的widget对象,flutter为我们提供了这样的一个非常方便的layout组件叫做Stack,今天和大家一起来聊一聊Stack的使用。以上就是Stack的使用,通过堆叠组件,我们可以实现很多炫酷的功能。更多内容请参考最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!原创 2022-09-20 17:03:02 · 431 阅读 · 0 评论 -
flutter系列之:flutter中常用的ListView layout详解
ListView是包含多个child组件的widget,在ListView中所有的child widget都是以list的形式来呈现的,你可以自定义List的方向,但是和GridView不同的是ListView中的每一个List里面都只包含一个widget。今天我们来详细了解一下ListView的底层实现和具体的应用。以上就是ListView的介绍和基本的使用。原创 2022-09-16 15:32:52 · 843 阅读 · 0 评论 -
flutter系列之:flutter中常用的GridView layout详解
GridView是一个网格化的布局,如果在填充的过程中子组件超出了展示的范围的时候,那么GridView会自动滚动。因为这个滚动的特性,所以GridView是一个非常好用的Widget。今天我们一起来探索一下GridView这个layout组件的秘密。GridView是一个我们在日常工作中经常会使用的组件,希望大家能够熟练掌握。原创 2022-09-13 17:01:53 · 974 阅读 · 0 评论 -
flutter系列之:flutter中常用的container layout详解
在上一篇文章中,我们列举了flutter中的所有layout类,并且详细介绍了两个非常常用的layout:Row和Column。掌握了上面两个基本的layout还是不够的,如果需要应付日常的layout使用,我们还需要掌握多一些layout组件。今天我们会介绍一个功能强大的layout:Container layout。Container是一个非常常用的layout组件,大家可以熟练的使用起来。更多内容请参考最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!原创 2022-09-08 18:01:31 · 974 阅读 · 0 评论 -
flutter系列之:UI layout简介
对于一个前端框架来说,除了各个组件之外,最重要的就是将这些组件进行连接的布局了。布局的英文名叫做layout,就是用来描述如何将组件进行摆放的一个约束。在flutter中,基本上所有的对象都是widget,对于layout来说也不例外。也就是说在flutter中layout也是用代码来完成的,这和其他的用配置文件来描述layout的语言有所不同。你可以把layout看做是一种看不见的widget,这些看不见的widget是用来作用在可见的widget对象上,给他们实施一些限制。原创 2022-09-05 21:33:02 · 807 阅读 · 0 评论 -
flutter系列之:Material主题的基础-MaterialApp
为了简化大家的使用,虽然flutter推荐所有的widget都有自己来进行搭建,但是在大框架上面,flutter提供了Material和Cupertino两种主题风格的Widgets集合,大家可以在这两种风格的继承上进行个性化定制和开发。这两种风格翻译成中文就是:材料和库比蒂诺?什么鬼…我们还是使用默认的英文名来称呼它们吧。本文我们将会深入讲解Material主题的基础-MaterialApp。MaterialApp作为Material风格的第一入口,希望大家能够熟练掌握它的用法。更多内容请参考。原创 2022-09-02 17:32:29 · 1079 阅读 · 0 评论 -
flutter系列之:构建Widget的上下文环境BuildContext详解
我们知道Flutter中有两种Widget,分别是StatelessWidget和StatefulWidget,StatelessWidget中有一个build方法来创建对应的Widget,虽然StatefulWidget中没有对应的build方法,但是和StatefulWidget对应的State中也有同样的build方法。这个build方法就是用来创建Widget的核心方法。...原创 2022-08-26 13:57:50 · 637 阅读 · 0 评论 -
flutter系列之:用来管理复杂状态的State详解
Flutter的基础是widget,根据是否需要跟用户进行交互,widget则可以分为StatelessWidget和StatefulWidget。StatelessWidget只能根据传入的状态进行简单的初始化widget,如果要实现跟用户交互这种复杂的功能,则需要用到StatefulWidget。但是对于StatefulWidget本身来说,它并不存储任何状态,所有的状态都是存放在和StatefulWidget关联的State中的。原创 2022-08-22 15:14:37 · 278 阅读 · 0 评论 -
flutter系列之:widgets,构成flutter的基石
flutter中所有的组件都是由widgets组成的,flutter中有各种各样的widgets,这些widgets构成了flutter这个大厦。那么flutter中的widget有什么特点呢?我们应该怎么学习widget呢?一起来看看吧。以上,我们简单的讲解了StatelessWidget和StatefulWidget的简单使用情况。后续我们将会这些组件进行深入,敬请期待。更多内容请参考最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!...原创 2022-08-18 15:33:49 · 748 阅读 · 0 评论 -
flutter系列之:flutter架构什么的,看完这篇文章就全懂了
Flutter是google开发的一个跨平台的UI构建工具,flutter目前最新的版本是3.0.5。使用flutter你可以使用一套代码搭建android,IOS,web和desktop等不同平台的应用。做到一次编写到处运行的目的。说到一次编写处处运行,大家可能会想到java。那么flutter跟java是不是类似呢?对于JAVA来说,在编写完JAVA代码之后,将其编译成为class字节码,然后这个class字节码就可以不需要进行任何转换的在任何平台上运行。...原创 2022-08-15 15:34:51 · 2332 阅读 · 0 评论 -
dart系列之:集合使用实践
文章目录简介使用字面量创建集合不要使用.length来判断集合是否为空可遍历对象的遍历List.from和iterable.toListwhere和whereType避免使用cast总结简介dart中有四种集合,分别是Set,List,Map和queues。这些集合在使用中需要注意些什么呢?什么样的使用才是最好的使用方法呢?一起来看看吧。使用字面量创建集合对于常用的Set,Map和List三个集合来说,他们是有自己的无参构造函数的: factory Set() = LinkedHashSet&l原创 2022-02-23 11:01:10 · 7520 阅读 · 1 评论 -
dart系列之:和null说再见,null使用真实实践
文章目录简介不需要初始化对象为nullnull的三元操作符如果在使用中需要判断类型是否为空,则不要使用late本地变量的类型提升总结简介null可能是大家在编写程序中最为头疼的一个东西,稍不留意的情况下就有可能使用到了这个空字符。所以dart在2.12引入了nll safety,默认情况下强制所有的类型都不为null,只有在你认为它可以为null的时候才可以设置为null。虽然有了null safety,但是这里还有一些我们需要考虑的null的最佳实践。不需要初始化对象为null在dart2.12原创 2022-01-17 09:21:27 · 7494 阅读 · 0 评论 -
dart系列之:手写Library,Library编写实践
文章目录简介使用part和part ofsrc中的文件package中的lib文件总结简介Library是dart用来组织代码的一种非常有用的方式,通过定义不同的Library,可以将非常有用的dart代码进行封装,从而提供给其他的项目使用。虽然我们可以自由使用import或者export来对library进行导入和导入。但是什么样的用法才是最合适的用法呢? 一起来看看吧。使用part和part of虽然很多程序员讨厌使用part,但是dart确实提供了part这种功能用来将一个大的lib拆分成多个原创 2022-01-10 10:27:49 · 8712 阅读 · 0 评论 -
dart系列之:dart代码规范实践指南
文章目录简介命名规则import中的顺序格式化总结简介每种语言都有自己的代码风格,这种代码风格是跟语言特性息息相关的。如果在编码的过程中遵循这种统一的编码规则,会给我们的业务带来非常多的便利。同样的,对应dart而已,也有属于自己的编码风格,一起来看看吧。命名规则一般来说,这个世界上有三种命名规则,分别是UpperCamelCase,lowerCamelCase和lowercase_with_underscores.UpperCamelCase表示的是驼峰格式,也就是首字母大写,其他的字母小写。原创 2022-01-04 09:33:03 · 7845 阅读 · 0 评论 -
dart系列之:你的地盘你做主,使用Extension对类进行扩展
文章目录简介dart中extension的使用API冲突extention的实现总结简介一般情况要扩展一个类,需要继承这个类,这是在大多数java或者其他面向对象语言中要做的事情。但是有些时候扩展类并不是特别好用,首先在有些语言中,有些类是禁止被扩展的。即使可以被扩展,但是扩展之后的类是一个新的类,而不是原来的父类,所以在使用的过程中可能会出现一些类型转换的问题。那么在dart中是怎么解决这个问题的呢?dart中extension的使用dart在2.7之后,引入了extension,用来对类的方原创 2021-12-31 09:25:25 · 7740 阅读 · 0 评论 -
dart系列之:dart优秀的秘诀-隔离机制
文章目录简介dart中的隔离机制生成一个IsolateIsolate之间的交互一个例子总结简介之前介绍了很多dart中的异步编程技巧,不知道大家有没有发现一个问题,如果是在java的异步编程中,肯定会提到锁和并发机制,但是对于dart来说,好像从来没有听到多线程和并发的问题,这是为什么呢?今天,给大家讲解一下dart中的隔离机制,大家就明白了。dart中的隔离机制dart是一个单线程的语言,但是作为一个单线程的语言,dart却支持Future,Stream等异步特性。这一切都是隔离机制和事件循环带原创 2021-12-27 08:14:46 · 8575 阅读 · 0 评论