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,),],);

5.Flutter报setState() or markNeedsBuild() called during build.错误解决办法

错误解析:
在运行中,原因是因为控件、响应事件还没有构建完毕,延时加载即可解决问题
解决方法:添加延时

void _addIndex() {Future.delayed(Duration(milliseconds: 200)).then((e) {setState(() {});});}
}

6.Flutter报setState() called after dispose()错误解决办法

错误解析:防止页面关闭执行setState()方法
解决方法:mounted

if(mounted){setState(() {});
}

7.如何实现水波纹,图片也怎么添加

InkWell有的叫溅墨效果,有的叫水波纹效果。使用场景是给一些无点击事件的部件添加点击事件时使用(也支持长按、双击等事件),同时你也可以去修改它的颜色和形状。

InkWell(borderRadius: BorderRadius.circular(8.0), // 圆角splashColor: Colors.transparent, // 溅墨色(波纹色)highlightColor: Colors.transparent, // 点击时的背景色(高亮色)onTap: () {},// 点击事件child: Container(),
);

(1)包一层 Material,将背景色设置在 Material中的color里。

Material(color: Colors.white,child: InkWell(),
)

(2)使用Stack布局,将InkWell放置在上层。这种适用于给图片添加点击效果,比如Banner图的点击。

Stack(children: <Widget>[Positioned.fill(child: Image(),),Positioned.fill(child: Material(color: Colors.transparent,child: InkWell(splashColor: Color(0X40FFFFFF),highlightColor: Colors.transparent,onTap: () {},),),)],)

8.Android和IOS控件区别

如:按钮、选择器、日历组件(Android的Material和iOS的Cupertino风格)

9.生命周期输出顺序


总体介绍一下生命周期,大致可以看成三个阶段:
初始化 (插入渲染树

Flutter面试问题总结相关推荐

  1. js解析二维码_最新最全阿里巴巴,今日头条,腾讯Flutter面试真题全解析(狂虐不止)...

    阿里巴巴,今日头条,腾讯Flutter面试真题全解析.你只有去过大厂,才知道大厂的面试有多难,这个难度不是你能够想象得到的.所以说如果想去做这方面的工作,建议把以下内容好好准备一下(其实也就是多看一些 ...

  2. Flutter面试常见开发问题

    本文主要介绍Flutter面试常见开发问题 Flutter 使用了一种全新的方法,您可以使用 widgets代替 Views .Android 中的 View 主要是布局的一个元素,但在 Flutte ...

  3. Flutter面试总结(2022)

    背景 最近在找工作,加上疫情比较严重,非常不方便.上午接到猎头小姐姐的电话,说有一家外企在招Flutter开发,我确实有过Flutter项目经验,问我有没有兴趣,加了微信发了资料后看了一下,是一家非常 ...

  4. flutter面试,字节大牛教你手撕Android学习,已整理成文档

    前言 想要成为一名优秀的Android开发,你需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样~. 学算法真的很痛苦,虽然大数据现在很火,但找到适合自己定位的职业也未尝不是一种合理选择. ...

  5. flutter面试,20道Android工程师面试必问题,移动架构师成长路线

    前言 准备面试其实已经准备了挺久了,当时打算面试准备了差不多以后,跟公司谈谈涨薪的事情,谈不拢的话,就年后直接找其他的公司.谁想到婚假还没休完,老板就在公司宣布了撤出上海的决定,愿意去深圳的就去,不愿 ...

  6. 15个经典面试问题,flutter面试

    前言 Hi~,我是 2020 届物联网专业毕业生,现就读于杭州.谨以此文来记录我的秋招以及入门前端以来的学习历程,如有错误,希望大家能及时提出! 面试情况 前前后后一共面试了 14 家公司的前端岗,按 ...

  7. iOS程序猿的flutter学习之路

    日常学习Flutter开发的积累 推荐一些平时自己学习Flutter开发当中接触到的优秀文章 -------------------------基础知识 ----------------------- ...

  8. 谷歌技术团队出品,Android Flutter全家桶学习资料【全新版】

    Flutter 是谷歌的移动端 UI 框架,可在极短的时间内构建 Android 和 iOS 上高质量的原生级应用. Flutter 可与现有代码一起工作, 它被世界各地的开发者和组织使用, 并且 F ...

  9. 今日头条App 页面秒开方案详解

    热文导读|   点击标题阅读 互联网寒冬下,程序员如何突围提升自己? Google发力了,Flutter突飙猛进,在鸿蒙OS的威胁下,FuchsiaOS API也发布了 全网第一篇整理的Flutter ...

  10. 一个优秀的前端都应该阅读这些文章

    前言 的确,有些标题党了.起因是微信群里,有哥们问我,你是怎么学习前端的呢?能不能共享一下学习方法.一句话也挺触动我的,我真的不算是什么大佬,对于学习前端知识,我也不能说是掌握了什么捷径.当然,我个人 ...

最新文章

  1. 服务器群安装系统,服务器安装总结
  2. Nutanix 将社区版代码带入云中
  3. 【Python】pandas 分类数据处理大全(附代码)
  4. vim + cscope + kscope
  5. python3网络爬虫开发实战下载_【Python3网络爬虫开发实战】 1.1-Python3的安装
  6. 天津政府应急系统之GIS一张图(arcgis api for flex)解说(二)鹰眼模块
  7. Oracle中“不等于”的使用
  8. Serv-U FTP Jail Break(越权遍历目录、下载任意文件)
  9. python实现简单购物商城_如何用python语言实现简单购物商城
  10. 连接访问数据库的技术方法
  11. 淘宝/天猫收货地址列表 API和快递费用的 API解析
  12. python3调用企业微信api
  13. 学前端是去培训班还是自学好?
  14. 解释程序与解释程序的缺点,图解——解释程序与编译程序的区别
  15. rpi4 实现 qiuqiu - Ultralight-SimplePose
  16. 投资百万运营网站 为何只坚持了一年?
  17. 惠普打印机墨盒更换教程_惠普打印机加墨教程:老司机教你
  18. word添加水印后多出一条线的删除方法
  19. ai决策_人工智能时代的决策
  20. October 2009

热门文章

  1. 软件测试组长要做的事情,测试组长的工作计划(共10篇).docx
  2. 应用软件漏洞利用分布
  3. 快速理解 POJO,VO,DO,DTO,Entity
  4. MySQL入门 - 数据库的编辑与备份,DOS与图形界面演示,Navicat软件使用
  5. centos7使用iso镜像离线安装依赖工具
  6. ARM Cortex-M0+Kinetis L系列学习笔记_MKL25Z4.h
  7. 跨境电商倍受青睐缘由为何,木瓜移动带你一探究竟
  8. 论文笔记 Inverting Visual Representations with Convolutional Networks
  9. 图片文件怎么快速压缩?
  10. wordpress插件-wordpress常用插件大全