摘要:在实际开发中,为了防止用户误触返回按钮导致程序退出,通常会设置为在1秒内连续点击两次才会退出应用程序。Android中一般的处理方式是在onKeyDown方法内做计时处理,当keyCode == KeyEvent.KEYCODE_BACK 且 两次点击返回按钮间隔时间小于1秒则退出应用程序,在Flutter中可以通过WillPopScope来实现拦截返回按钮,并且在其内部做计时处理。 阅读全文
posted @ 2019-09-05 15:50 CurtisWgh 阅读 (58) 评论 (0) 编辑
摘要:如需转载,请注明出处:Flutter学习笔记(25)--ListView实现上拉刷新下拉加载 前面我们有写过ListView的使用:Flutter学习笔记(12)--列表组件,当列表的数据非常多时,需要使用长列表,比如淘宝后台的订单列表,手机通讯录等,这些列表项数据很多,长列表也是使用ListVie 阅读全文
posted @ 2019-08-30 16:33 CurtisWgh 阅读 (92) 评论 (0) 编辑
摘要:在我们实际的项目开发中,经常会遇到页面UI内容过多,导致手机一屏展示不完的情况出现,以Android为例,在Android中遇到这类情况的做法通常就是使用ScrollView将内容包裹起来,如果不做可滑动的处理,Android上的表现为页面的部分内容无法展示,而在Flutter中,如果内容过多无法展示完全,屏幕的边界会给我们一个OVERFLOWED的警告提示,在Flutter中我们通常使用SingleChildScrollView处理滑动,这里需要注意的是,通常SingleChildScrollView只应在期望的内容不会超过屏幕太多时使用,这是因为SingleChildScrollView不支持基于Sliver的延迟实例化模式,所以如果预计视口可能包含超出屏幕尺寸太多的内容时使用SingleChildScrollView将会导致性能差的问题,此时应该使用一些支持Sliver延迟加载的可滚动组件,如ListView。 阅读全文
posted @ 2019-08-27 16:49 CurtisWgh 阅读 (160) 评论 (0) 编辑
摘要:上一篇梳理了拥有单个子元素布局的Widget,今天来梳理一下拥有多个子元素布局的Widget。 Row Row组件常见属性如下: mainAxisAlignment:主轴的排列方式 crossAxisAlignment:次轴的排列方式 mainAxisSize:主轴应该占据多少空间,取值max为最大,min为最小 children:组件子元素,它的本质是一个List列表 对于Row来说,水平方向是主轴,垂直方向是次轴。 首先来看一下mainAxisAlignment属性值都有哪些 阅读全文
posted @ 2019-08-26 18:11 CurtisWgh 阅读 (46) 评论 (0) 编辑
摘要:入门学习Flutter有一段时间了,Demo用过的Widget也有不少,想着整体的梳理一下,所以今天结合Flutter中文网和书籍梳理一下Widget的使用,首先梳理一下拥有单个子元素的布局Widget。 Container:一个拥有绘制、定位、调整大小的Widget Padding:一个Widget,会给其子Widget添加指定的填充 Center:将其子Widget居中显示在自身内部的Widget Align:一个WIdget,它可以将其子Widget对其,并可以根据子Widget的大小自动调整大小 FittedBox:按自己的大小调整其子Widget的大小和位置 Baseline:根据子项的基准线对它们的位置进行定位的Widget Offstage:一个布局Widget,可以控制其子Widget的显示和隐藏 LimitedBox:一个当其自身不受约束时才限制其大小的盒子 OverflowBox:对其子项施加不同约束的Widget,它可能允许子项溢出父级 SizedBox:一个特 阅读全文
posted @ 2019-08-23 18:29 CurtisWgh 阅读 (39) 评论 (0) 编辑
摘要:今天来学习下TextField文本框组件和Card卡片组件。 只要是应用程序就少不了交互,基本上所有的应用程序都会有用户名、密码输入框,搜索框等等,前面我们有写过一篇基于Form表单的输入功能,今天来看一下TextField文本框组件,文本输入是最常见的一种交互方式,TextField组件就是用来做文本输入的组件。注意这个要和Text组件区分开来,Text组件主要用于显示文本,并不能接受输入文本。 阅读全文
posted @ 2019-08-22 01:17 CurtisWgh 阅读 (89) 评论 (0) 编辑
摘要:如需转载,请注明出处:Flutter学习笔记(20)--FloatingActionButton、PopupMenuButton、SimpleDialog、AlertDialog、SnackBar FloatingActionButton FloatingActionButton FloatingA 阅读全文
posted @ 2019-08-21 01:47 CurtisWgh 阅读 (119) 评论 (0) 编辑
摘要:如需转载,请注明出处:Flutter学习笔记(19)--加载本地图片 上一篇博客正好用到了本地的图片,记录一下用法: 首先新建一个文件夹,这个文件夹要跟目录下 然后在pubspec.yaml里面声明出来(- 后面有个空格) 最后就是使用了: 阅读全文
posted @ 2019-08-18 23:50 CurtisWgh 阅读 (46) 评论 (0) 编辑
摘要:Drawer(抽屉组件)可以实现类似抽屉拉出和推入的效果,可以从侧边栏拉出导航面板。通常Drawer是和ListView组件组合使用的。 Drawer组件可以添加头部效果,用DrawerHeader和UserAccountsDrawerHeader这两个组件可以实现。 DrawerHeader:展示基本信息 UserAccountsDraweHeader:展示用户头像、用户名、Email等信息 阅读全文
posted @ 2019-08-18 23:36 CurtisWgh 阅读 (138) 评论 (2) 编辑
摘要:上一篇我们说了BottmNavigationBar底部导航组件,今天来学习一下顶部导航组件TabBar,TabBar选项卡一般位于AppBar下方,通常和TabBar(顶部导航选项卡)一起使用的有TabBarView和TabController。 TabBar:Tab页的选项组件,默认为水平排列。 TabBarView:Tab页的内容容器,Tab页内容一般处理为随选项卡的改变而改变。 TabController:TabBar和TabBarView的控制器,它是关联这两个组件的桥梁。 阅读全文
posted @ 2019-08-17 17:40 CurtisWgh 阅读 (174) 评论 (0) 编辑
博聚网