首页 > App

flutter控件嵌套,flutter嵌入原生组件

2024-01-15 浏览: 35

Android原生和Flutter使用过程的差异对比(二)

1、React Native、Weex等技术多了一个桥接层,所以界面渲染会慢一些,由于UI渲染非常频繁,想要不卡顿,基本上比较难,性能和用户体验跟原生代码有差距。

2、界面搭建过程中各种大小单位 Android:通常采用dp设置View宽高(和px像素的换算关系是dp值 × density逻辑密度),sp设置字体大小(会随着系统字体设置的大小而改变)。

3、由于使用原生控件进行渲染,性能体验也会更接近原生。但也只是更接近,和原生还是有差距的,因为它需要频繁的进行 JavaScript 和原生之间的通信,这个通信效率是比较低的。

4、就和H5一起开发。使用flutter开发Flutter是Google近几年推出的UI框架。使用dart语言开发,支持跨平台,直接操作带权重渲染的硬件层,体验堪比原生。但是颤振技术比较新,生态还不完善,开发效率比较低。

5、使用flutter开发flutter是近年来谷歌推出的一款UI框架,使用dart语言进行开发,支持跨平台,weight渲染直接操作硬件层,体验可媲美原生。但是flutter技术比较新,生态还不完善,开发起来效率相对偏低。

Flutter踩坑之旅

1、这是库的地址 PhilipsHue/flutter_reactive_ble: Flutter library that handles BLE operations for multiple devices. (github.com)安卓主要的坑就是,在使用蓝牙功能的时候,需要获取定位权限,这个需要动态获取。

2、最近在做个flutter蓝牙功能,用的flutter_blue,在iOS上没有任何问题,照着例子写完,正常运行蓝牙功能,但是在安卓上发现各种坑,用这个插件首先是有些设备拿不到设备名称,还有就是读写特征和ios上拿到的也不一样。

3、项目环境是flutter开发的,然而阿里云官网并没有flutter相关的SDK,所以选择了集成的插件,这里踩过的坑不多叙述,开始正题。

4、记录下坑 一开始我就使用Future、async、await去做异步操作,以为这样能解决问题,经过一天研究发现他们都还在同一个线程里面,也就是UI线程,导致卡顿,这明显不是我们想要的异步加载数据。

5、开始寻找代替方案,Fluter像一束曙光引起了我的注意,之后一直关注并利用闲余时间开始探索。

Flutter中Column嵌套ListView报错处理方案

解决方法一:listview 外面添加一个container,并且给定一个指定的高度。

错误1:Vertical viewport was given unbounded height.设置 shrinkWrap = true ListView 或 GridView 时发现有两个属性。

当ListView、GridView作为Wrap、Column等组件的子组件时,若外部没有设置高度,则会产生此报错。解决放案:为ListView、GridView设置属性 shrinkWrap: true,刷新后,报错消失,但是发现其只可内部滚动。至此,需求达成。

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

大家在学习Flutter的时候,刚刚开始学习布局应该会各种遇到溢出。比如在用到Row或者Column经常会遇到布局溢出的问题。

flutter控件嵌套的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于flutter嵌入原生组件、flutter控件嵌套的信息别忘了在本站进行查找喔。

标签: flutter控件嵌套 flutter嵌入原生组件