flutter gridview(Flutter 手势指纹解锁)

2026-03-14 10:15:02 :0

flutter gridview(Flutter 手势指纹解锁)

这篇文章给大家聊聊关于flutter gridview,以及Flutter 手势指纹解锁对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

本文目录

Flutter 手势指纹解锁

  在最近做的一个Flutter项目中,需要用到手势、指纹解锁,这种需求在原生应用中非常常见,但Flutter中手势密码解锁现有库比较少、官方也仅提供有一个 local_auth 指纹库,所以就自己写了个手势库。

  其实实现这个自定义的手势控件有很多思路,首先想到的是,要在View中创建9个圆,那么使用GridView再合适不过了,但是经过尝试,放弃了,这会使交互跟逻辑变的更加复杂,所以还是选择直接继承Widget,自己处理逻辑与手势,那么下面就是需要处理的逻辑:

由于官方插件库已经提供有 local_auth 库,在这里就不大赘述,具体使用就参考Flutter官方local_auth插件库。

  如果在使用过程遇到问题,欢迎下方留言交流。

   Pub 库地址

Flutter PageView组件怎样让子组件不会重复加载

在做一个美女相册flutter demo app的时候发现,每次切换页面的时候,里面的子页面(GridView widget)每次都会重新加载,就像下面这样:

这样的体验肯定不行。经过一番调研后发现竟然还需要做蛮多事情的。

先看看目前的实现:

这个就是包含在PageView里面的子组件,很简单,通过FutureBuilder调一个接口返回数据后build一个GridView。很显然每次切换Tab的时候,应该是每次都进入了_BeautyListWidgetState的build方法,导致每次都会重新刷新。那要怎样才能做到加载后切换不再刷新呢?

需要实现 wantKeepAlive 方法(返回true),另外在build方法最前面需要 调用 super.build(context); ,如下:

所以你需要在initState方法中创建这个Future。如下:

好了。效果实现了。不过稍后还需要看看AutomaticKeepAliveClientMixin源码,看看它是如何做到的。

***隐藏网址***

Flutter 设置Container高度自适应GridView 或Listview

在做移动端的时候, 很多时候会需要下图所示的需求,如图 自己所示:

先进行需求分析, 这个模块可以设计成Container包含GridView,  GridView中子内容个数由后台数据控制, 但是在直接写Container包含GridView控件时会出现 "Failed assertion: line 1920 pos 12: ’hasSize’" 有关的错误, 如果直接给Container一个高度的话, 又不满足我们的需求.

我们想要的结果是由数据控制GridView的个数, 而Container大小跟随GridView个数的变化而变化, 而不去直接设置Container的大小, 

因此,我们点开GridView的api发现, 有一个shrinkWrap属性,  设置shrinkWrap:true即可, 运行一下即可达到效果, 但是又会发现另一个问题, 虽然Container大小可以自适应了, 但是里面的内容又会在局部进行滚动, 而我们的想法是想让内容在整个屏幕中滚动, 并没有局部滚动的效果, 因此, 我们设置另一个属性physics: NeverScrollableScrollPhysics()

在GridView.builder中添加

Container跟随GridView内容变化高度: shrinkWrap:true,    

取消滚动效果: physics:NeverScrollableScrollPhysics(),

flutter 使用ListView等列表组件错误记录

错误1:Vertical viewport was given unbounded height.

设置   shrinkWrap   = true

  ListView  或  GridView  时发现有两个属性。

shrinkWrap  常用于内容大小不确定情况,如果滚动视图( ListView/GridView/ScrollView  等)没有收缩包装,则滚动视图将扩展到允许的最大大小。如果是无界约束,则  shrinkWrap  必须为  true 。

primary  如果为  true ,即使滚动视图没有足够的内容来支撑滚动,滚动视图也是可滚动的。否则,默认为  false  情况下,只有具有足够内容的用户才能滚动视图。

Flutter 之 滚动监听及控制(十九)

ListView、GridView的组件控制器是ScrollController,我们可以通过它来获取视图的滚动信息,并且可以调用里面的方法来更新视图的滚动位置。

ScrollController构造函数如下:

ScrollController常用的属性和方法:

ScrollController间接继承自Listenable,我们可以根据ScrollController来监听滚动事件,如:

示例
我们创建一个ListView,当滚动位置发生变化时,我们先打印出当前滚动位置,然后判断当前位置是否超过1000像素,如果超过则在屏幕右下角显示一个“返回顶部”的按钮,该按钮点击后可以使ListView恢复到初始位置;如果没有超过1000像素,则隐藏“返回顶部”按钮。

ScrollPosition是用来保存可滚动组件的滚动位置的。一个ScrollController对象可以同时被多个可滚动组件使用,ScrollController会为每一个可滚动组件创建一个ScrollPosition对象,这些ScrollPosition保存在ScrollController的positions属性中(List《ScrollPosition》)。ScrollPosition是真正保存滑动位置信息的对象,offset只是一个便捷属性

一个 ScrollController 虽然可以对应多个可滚动组件,但是有一些操作,如读取滚动位置 offset ,则需要一对一!但是我们仍然可以在一对多的情况下,通过其它方法读取滚动位置,举个例子,假设一个 ScrollController 同时被两个可滚动组件使用,那么我们可以通过如下方式分别读取他们的滚动位置:

我们可以通过 controller.positions.length 来确定 controller 被几个可滚动组件使用。

ScrollPosition 有两个常用方法: animateTo() 和 jumpTo() ,它们是真正来控制跳转滚动位置的方法, ScrollController 的这两个同名方法,内部最终都会调用 ScrollPosition 的。

我们来介绍一下 ScrollController 的另外三个方法:

当 ScrollController 和可滚动组件关联时,可滚动组件首先会调用 ScrollController 的 createScrollPosition() 方法来创建一个 ScrollPosition 来存储滚动位置信息,接着,可滚动组件会调用 attach() 方法,将创建的 ScrollPosition 添加到 ScrollController 的 positions 属性中,这一步称为“注册位置”,只有注册后 animateTo() 和 jumpTo() 才可以被调用。

当可滚动组件销毁时,会调用 ScrollController 的 detach() 方法,将其 ScrollPosition 对象从 ScrollController 的 positions 属性中移除,这一步称为“注销位置”,注销后 animateTo() 和 jumpTo() 将不能再被调用。

需要注意的是, ScrollController 的 animateTo() 和 jumpTo() 内部会调用所有 ScrollPosition 的 animateTo() 和 jumpTo() ,以实现所有和该 ScrollController 关联的可滚动组件都滚动到指定的位置。

Flutter Widget树中子Widget可以通过发送通知(Notification)与父(包括祖先)Widget通信。父级组件可以通过NotificationListener组件来监听自己关注的通知

可滚动组件在滚动时会发送 ScrollNotification 类型的通知, ScrollBar 正是通过监听滚动通知来实现的。通过 NotificationListener 监听滚动事件和通过 ScrollController 有两个主要的不同:

示例
下面,我们监听ListView的滚动通知,然后显示当前滚动进度百分比:

在接收到滚动事件时,参数类型为ScrollNotification,它包括一个metrics属性,它的类型是ScrollMetrics,该属性包含当前ViewPort及滚动位置等信息:

***隐藏网址***

flutter 在 GridView 中 Text 控件第二行文字显示不全怎么解决

用 Expanded 和 TextOverflow.clip
Widget testText() {
return GridView.builder(
gridDelegate:
SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
itemCount: 8,
itemBuilder: (BuildContext context, int index) {
return Expanded(
child: Text(
"测试两行测试两行测测试两行测试两行测试两行测试两行测试两行测试两行测试两行测两行测试两行测试两行测试两行测试两行测试两行测试两行",
overflow: TextOverflow.clip,
style: TextStyle(fontSize: 20),
));
},
);
}

Flutter 手势指纹解锁的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Flutter 手势指纹解锁、Flutter 手势指纹解锁的信息别忘了在本站进行查找哦。

flutter gridview(Flutter 手势指纹解锁)

本文编辑:admin

更多文章:


html网页模板(网页制作设计模板-旅游网页该如何设计模板)

html网页模板(网页制作设计模板-旅游网页该如何设计模板)

大家好,今天小编来为大家解答以下的问题,关于html网页模板,网页制作设计模板-旅游网页该如何设计模板这个很多人还不知道,现在让我们一起来看看吧!本文目录网页制作设计模板-旅游网页该如何设计模板有关婚礼微信邀请函模板(通用8篇)有什么好的H

2025年9月29日 04:45

this love歌词taylor(求Taylor Swift的Love Story的歌词的中文翻译~)

this love歌词taylor(求Taylor Swift的Love Story的歌词的中文翻译~)

今天给各位分享求Taylor Swift的Love Story的歌词的中文翻译~的知识,其中也会对求Taylor Swift的Love Story的歌词的中文翻译~进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目

2025年6月19日 16:30

span标签有内容却不显示(定义一个CSS,但是只有DIV可以显示出来,span等都无法显示)

span标签有内容却不显示(定义一个CSS,但是只有DIV可以显示出来,span等都无法显示)

“span标签有内容却不显示”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看span标签有内容却不显示(定义一个CSS,但是只有DIV可以显示出来,span等都无法显示)!本文目录定义一个CSS,但是只有DIV可以显示出来,

2026年7月29日 21:00

void sort是什么意思(请各位说说void sort里的算法是什么意思)

void sort是什么意思(请各位说说void sort里的算法是什么意思)

这篇文章给大家聊聊关于void sort是什么意思,以及请各位说说void sort里的算法是什么意思对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录请各位说说void sort里的算法是什么意思void sort在C语言中什

2025年6月20日 00:15

学电脑软件开发哪个学校好(电脑软件开发去什么学校学习比较好)

学电脑软件开发哪个学校好(电脑软件开发去什么学校学习比较好)

本篇文章给大家谈谈学电脑软件开发哪个学校好,以及电脑软件开发去什么学校学习比较好对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录电脑软件开发

2026年8月16日 18:45

语言指令有哪些(c语言指令有哪些啊)

语言指令有哪些(c语言指令有哪些啊)

“语言指令有哪些”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看语言指令有哪些(c语言指令有哪些啊)!本文目录c语言指令有哪些啊计算机语言指令分为几类ST语言编程里面的几个指令是什么意思c语言中预处理命令都有哪些C语言32个

2025年12月5日 16:45

subject都有什么意思(“subject ”是什么意思)

subject都有什么意思(“subject ”是什么意思)

大家好,关于subject都有什么意思很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于“subject ”是什么意思的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮

2026年8月15日 06:00

数据库的概念和作用(关于数据库的概念)

数据库的概念和作用(关于数据库的概念)

大家好,数据库的概念和作用相信很多的网友都不是很明白,包括关于数据库的概念也是一样,不过没有关系,接下来就来为大家分享关于数据库的概念和作用和关于数据库的概念的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本文目录关于数

2025年9月9日 10:45

莫奈的网络解释莫奈的网络解释是什么?莫奈的解释莫奈的解释是什么

莫奈的网络解释莫奈的网络解释是什么?莫奈的解释莫奈的解释是什么

这篇文章给大家聊聊关于莫奈,以及莫奈的网络解释莫奈的网络解释是什么对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录莫奈的网络解释莫奈的网络解释是什么莫奈的解释莫奈的解释是什么莫奈风景油画作品经典莫奈油画欣赏莫奈的网络解释莫奈的

2025年7月29日 02:00

网页模板停用不能上报怎么办(请教一下,关于网页模板显示不出来的问题~~)

网页模板停用不能上报怎么办(请教一下,关于网页模板显示不出来的问题~~)

大家好,关于网页模板停用不能上报怎么办很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于请教一下,关于网页模板显示不出来的问题~~的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望

2025年10月22日 22:45

免费阅读小说大全下载(哪些网站可以直接免费TXT下载小说)

免费阅读小说大全下载(哪些网站可以直接免费TXT下载小说)

其实免费阅读小说大全下载的问题并不复杂,但是又很多的朋友都不太了解哪些网站可以直接免费TXT下载小说,因此呢,今天小编就来为大家分享免费阅读小说大全下载的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录哪些网站可以

2026年5月12日 02:45

可视化网站模板(不同模式的网站制作这些知识要知道)

可视化网站模板(不同模式的网站制作这些知识要知道)

大家好,关于可视化网站模板很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于不同模式的网站制作这些知识要知道的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目

2026年3月8日 21:15

dateadd函数的语法参数(在VB6.0中,DateAdd函数中,用“w“,“y“与“d“,我怎么感觉都一样呀,都是天)

dateadd函数的语法参数(在VB6.0中,DateAdd函数中,用“w“,“y“与“d“,我怎么感觉都一样呀,都是天)

“dateadd函数的语法参数”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看dateadd函数的语法参数(在VB6.0中,DateAdd函数中,用“w“,“y“与“d“,我怎么感觉都一样呀,都是天)!本文目录在VB6.0中

2026年2月21日 15:30

springfestival用in oron(the Spring Festival前用in还是on)

springfestival用in oron(the Spring Festival前用in还是on)

其实springfestival用in oron的问题并不复杂,但是又很多的朋友都不太了解the Spring Festival前用in还是on,因此呢,今天小编就来为大家分享springfestival用in oron的一些知识,希望可以

2026年8月28日 02:45

acquaintance歌曲(新年快乐英文歌除了happy new year还有那些)

acquaintance歌曲(新年快乐英文歌除了happy new year还有那些)

大家好,acquaintance歌曲相信很多的网友都不是很明白,包括新年快乐英文歌除了happy new year还有那些也是一样,不过没有关系,接下来就来为大家分享关于acquaintance歌曲和新年快乐英文歌除了happy new y

2026年4月19日 03:15

constantly continuously(constantly怎么读)

constantly continuously(constantly怎么读)

大家好,如果您还对constantly continuously不太了解,没有关系,今天就由本站为大家分享constantly continuously的知识,包括constantly怎么读的问题都会给大家分析到,还望可以解决大家的问题,下

2025年8月8日 18:15

微软windows官网(请问微软的官方网站在哪)

微软windows官网(请问微软的官方网站在哪)

各位老铁们,大家好,今天由我来为大家分享微软windows官网,以及请问微软的官方网站在哪的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录请问微软的

2025年8月4日 08:45

a拼音怎么读(拼音a的发音)

a拼音怎么读(拼音a的发音)

各位老铁们好,相信很多人对a拼音怎么读都不是特别的了解,因此呢,今天就来为大家分享下关于a拼音怎么读以及拼音a的发音的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录拼音a的发音a在汉语拼音中读什么a的拼音是什么怎

2026年5月27日 13:45

官网无需代码构建(国内的无代码开发平台 有推荐吗)

官网无需代码构建(国内的无代码开发平台 有推荐吗)

大家好,官网无需代码构建相信很多的网友都不是很明白,包括国内的无代码开发平台 有推荐吗也是一样,不过没有关系,接下来就来为大家分享关于官网无需代码构建和国内的无代码开发平台 有推荐吗的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我

2025年12月17日 11:00

asp技术主要用来干嘛(ASP能为我们做什么)

asp技术主要用来干嘛(ASP能为我们做什么)

大家好,关于asp技术主要用来干嘛很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于ASP能为我们做什么的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录A

2025年6月24日 23:00

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索