flutter页面错乱(flutter 滑动冲突)

网友投稿 1686 2022-12-24

本篇文章给大家谈谈flutter页面错乱,以及flutter 滑动冲突对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享flutter页面错乱的知识,其中也会对flutter 滑动冲突进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Flutter解决界面超出bug

如上图,最右边有黄色斑马线类似的线。

在这里查找源码
可以看到,Flutter在这里做的处理

_calculateOverflowRegions这个方法,计算界面是否超出边界,如果超出了

就添加一个斑马线的布局,可以通过修改源码的方式,暂时让他隐藏
直接return就可以了。

当然,Flutter这样是为了更好的提示开发者,方便开发的。平时调试的时候还是要打开的。除非上线,如果不放心的话,可以这么写。

flutter页面卡顿检测

对于任何一款应用来说,页面的流畅度是用户体验最重要的几个指标之一。我们需要用数据的形式标识出页面的流畅程度。

对于大部分人而言,当每秒的画面达到60,也就是俗称60FPS的时候,整个过程就是流畅的。一秒 60 帧,也就意味着平均两帧之间的间隔为 16.7ms。但并不意味着一秒低于60帧,人眼就会感觉到卡顿。小轰将查阅到的资料列出如下:

官方SDK为开发者提供的帧率检测工具,使用非常简单,在 MaterialApp 下添加属性 showPerformanceOverlay:true 。

如图,PerformanceOverLay 会分别为我们展示了构建(UI)耗时和渲染(Raster)耗时。

一款pub上的开源工具,链接地址: fps_monitor

Flutter:State生命周期以及页面重载问题详解

这里需要混入WidgetsBindingObserver,重写didChangeAppLifecycleState方法才能看到app进入前后台的状态

我这边使用的是一个嵌套行页面,主页面(TabBarViewPage)是一个TabBar+TabBarView实现的子页面切换,子页面是三个页面(HomeItemPage,EmailItemPage,MineItemPage)

子页面互相切换的时候下一个页面创建,上一个页面就会被销毁,这是flutter默认的情况,页面会被移除然后重载。当然你也可以设置需要的页面不被重载的页面,这个后面再讲

解决页面重载需要三步

可以看到home并没有被销毁也没有重载,但是mail被销毁了然后重载了

可以看到当主页面销毁的时候,home也是被销毁的

flutter跳转原生页面后的穿透问题

现象:
flutter页面通过present跳转原生页面后,原生页面上的点击会首先响应下面的flutter页面中的内容(比如按钮什么的)。

这是flutter框架一直存在的一个bug。在github上有相关的issue。
https://github.com/flutter/flutter/issues/35784

原因推测:
推测是flutter对控制器(或者view)加了分类,重写了控制器的点击事件,用来计算是否在对应的点击位置有flutter响应事件。没有的话再扔出去点击事件。

解决方案1:
在原生控制器中,加入点击事件的几个方法的空实现,用以覆盖flutter框架中的实现:

-(void)touchesBegan:(NSSet<UITouch * *)touches withEvent:(UIEvent *)event{
}

-(void)touchesMoved:(NSSet<UITouch * *)touches withEvent:(UIEvent *)event{
}

-(void)touchesCancelled:(NSSet<UITouch * *)touches withEvent:(UIEvent *)event{
}

-(void)touchesEnded:(NSSet<UITouch * *)touches withEvent:(UIEvent *)event{
}

让事件不被flutter截获即可。

解决方案2:
直接切换window的根控制器到原生控制器即可。别忘暂时保存flutter控制器。
在返回时再切换回flutter中。

解决方案3:
在flutter跳转到原生页面之前,在flutter中加上一个蒙层,用来隔绝手势往flutter下面的view传递。原生页面返回flutter时再移除这个蒙层。

Flutter应用启动页设置,解决 白/黑 屏情况

出现此情况的原因有两种

解决:
找到 \app\src\main\res\drawable\launch_background.xml 文件,这个里面初始化了布局标签,只需要把图片替换为我们自己的就可以。

或者根据不同手机的分辨率 在mipmap下放置图片例如:

之后前往 styles.xml 文件设置启动页

重新打包就可以看到 刚刚设置的启动页了
效果例如:
[图片上传失败...(image-7e5c2-1586668143446)]

至此可以流畅的打开启动页了

flutter刷新页面的方法

这种方法最常见flutter页面错乱,但是有些地方引用的话flutter页面错乱,刷新的成本比较大,刷新的是整个页面,数据太多加载太慢的话,会有闪烁的现象

这种方法类似于iOS中的set方法,通过设置某个属性的时候,去刷新某个控件。在flutter中这种刷新方式,是对上面setState(){}方法的改进,根本的方法还是setState(){},只不过是通过方法去刷新某个控件。如下flutter页面错乱

首先在pubspec.yaml中添加provider依赖

下面通过provider来实现一个发送验证码的案例。

创建一个TimerModel文件

页面布局如下: 关于flutter页面错乱和flutter 滑动冲突的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 flutter页面错乱的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于flutter 滑动冲突、flutter页面错乱的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:app开发定制公司(app开发定制公司的优势)
下一篇:智能车载终端在哪儿找(车载智能终端厂家)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~