Flutter面试题——面试题整理9
一 面试题汇总
- Widget在一些窄屏设备上,文本溢出了,你会如何修复呐?
- Row显示宽度太窄无法容纳它们时,子节点自动换行到下一行展示如何操作
- 如何将cheese变成私有变量,怎样将它变成全局变量,什么时候你使用全局变量?
- hot reload和hot restart的区别是什么?
- StatelessWidget和StatefulWidget的区别是什么?
- WidgetsApp和MaterialApp的区别什么?
- 可以嵌套使用Scaffold吗,为什么或者为什么不?
- 什么时候适合使用packages、plugins或者三方库?
- 怎么减少Widget的重新构建?
- 什么是BuildContext,它有什么用?
- 在Flutter应用程序中,你怎么和native进行交互?
- 你可以做哪种类型的测试?
- 不同状态管理框架的优缺点是什么?
二 面试题解答(仅供参考)
2.1 Widget在一些窄屏设备上,文本溢出了,你会如何修复呐?
1 | 使用Expandedwidget来包裹Textwidget,以告知Row忽略Textwidget的固有宽度, |
2.2 Row显示宽度太窄无法容纳它们时,子节点自动换行到下一行展示如何操作
1 | 只需要将Row替换为Wrap就可以了。 |
2.3 如何将cheese变成私有变量,怎样将它变成全局变量,什么时候你使用全局变量?
1 | 给定下面类 |
2.4 hot reload和hot restart的区别是什么?
1 | hot reload在立刻更新UI的同时保持程序的状态,相比之下hot restart花费更长一点的时间, |
2.5 StatelessWidget和StatefulWidget的区别是什么?
1 | 1-StatelessWidget是一个不可变的类,充当UI布局中某些部分的蓝图, |
2.6 WidgetsApp和MaterialApp的区别什么?
1 | 1-WidgetsApp提供了基础的导航能力,和widgets库一起,它包含了很多Flutter使用的基础widget。 |
2.7 可以嵌套使用Scaffold吗,为什么或者为什么不?
1 | 当然可以,你绝对可以嵌套使用Scaffold,这体现Flutter的美,你可以控制整个UI。 |
2.8 什么时候适合使用packages、plugins或者三方库?
1 | packages和plugins可以极大的节约你的时间,当别人已经解决了一个复杂问题时, |
2.9 怎么减少Widget的重新构建?
1 | 当state发生改变时,你将重新构建widget,这种正常且理想的状态, |
2.10 什么是BuildContext,它有什么用?
1 | BuildContext实际上是在Element树中的Widget的元素, |
2.11 在Flutter应用程序中,你怎么和native进行交互?
1 | 通常你不需要和原生进行交互,因为Flutter或三方插件会处理这些问题, |
2.12 你可以做哪种类型的测试?
1 | Flutter中有三种类型的测试:unit tests、widget tests、integration tests, |
2.13 不同状态管理框架的优缺点是什么?
1 | 有多种多样的框架,其中一些比较知名状态管理框架, |
三 参考
- 简书—Flutter面试题带答案