Flutter面试问题总结
文章目录
- Flutter面试问题总结
- 前言
- 1.本地数据存储方式
- 2.与原生通讯方式
- 3.键盘弹出高度超出解决
- 4.ListView报Vertical viewport was given unbounded height错误解决方法
- 5.Flutter报setState() or markNeedsBuild() called during build.错误解决办法
- 6.Flutter报setState() called after dispose()错误解决办法
- 7.如何实现水波纹,图片也怎么添加
- 8.Android和IOS控件区别
- 9.生命周期输出顺序
- 10.Flutter线程
- 11. Flutter里的key?
- 总结
前言
本文是今年作者在应聘面试时所遇到的Flutter问题以及所总结的解答,仅供学习参考,偶尔可能会更新与总结。有部分解答是网上资料,作者还是萌新,可能会有疏忽或不足,望共同学习互勉。
1.本地数据存储方式
Flutter的本地存储方式参考Android的本地存储方式: 文件,SharedPreferences,Sqlite数据库
2.与原生通讯方式
Flutter定义了三种不同类型的Channel,它们分别是:
BasicMessageChannel:用于传递字符串和半结构化的信息。
MethodChannel:用于传递方法调用。
EventChannel: 用于数据流的通信。
3.键盘弹出高度超出解决
Scaffold(
resizeToAvoidBottomPadding: false, //输入框抵住键盘
)
4.ListView报Vertical viewport was given unbounded height错误解决方法
错误解析:宽度或高度溢出,导致Widget不显示
解决方法:给ListView的shrinkWrap属性设置为true,即父视图的大小跟随子组件的内容大小
return Column(
children: <Widget>[
ListView.builder(
itemCount: sourceDataComments.length,
itemBuilder: _buildCommentsRow,
shrinkWrap: true,
),
],
);