Flutter使用小技巧四(持续更新...)
- 解决依赖冲突
- Row、Column主轴对齐方式
- Future cathError 异常时添加默认返回值
- 如何在Column中嵌入横着滚动的ListView
- Flutter 渲染流程3大步骤
- Offset.zero & size含义
- MaterialPageRoute中maintainState作用
- 重载运算符
- Completer的使用
- StatefulBuilder
- Dialog 无法自定义大小
- 忽略指针事件
- 获取Widget的位置与大小
- initState/dispose 无法使用BuildContext
- 系统状态栏颜色
- SearchDelegate 搜索栏
Flutter使用小技巧一(持续更新)
Flutter使用小技巧二(持续更新)
Flutter使用小技巧三(持续更新)
解决依赖冲突
dependency_overrides:
# 固定版本
third_part_dependecy_name: x.x.x
Row、Column主轴对齐方式
默认:mainAxisAlignment:MainAxisAlignment.start
spaceBetween: 将空闲空间均匀的分布在child wight之间spaceAround:将空闲空间均匀对的分布在child wight前、后一半之间(child wight前、后一半空间相等)spaceEvenly:将空闲空间均匀的分布在child wight前后之间(所有空闲空间相等)
Row

Column
Future cathError 异常时添加默认返回值
Future<int> getA()async{
throw 1;
}
int i= await getA().catchError((e)=>2);
打印输出i=2
如何在Column中嵌入横着滚动的ListView
Column(children: [
Text('HEAD'),
ListView.builder(
scrollDirection: Axis.horizontal,
itemCount: 200,
itemBuilder(_,index) => Item()
)
Text('FOOT'),
])
很显然上面的代码一定会抛出异常,因为ListView当前滑动方向是横着的,所以它的交叉轴就是Column的主轴,我们知道Column的主轴方向是竖着的高度是无限的 ,向下回传递一个无限约束,然而在ListView确认视窗的时候交叉轴是无法确定的就会导致ListView无法布局,有一下几种办法:
- 固定ListView的高度:
ListView外层包裹一个SizeBox - 将
ListView替换为Row,数据量小的情况下 - 使用Stack嵌套ListView
我们知道Stack的 尺寸是非Positioned的那个Widget的尺寸,这样我们就可以将一个Item()作为布局用









![[2024最新]MySQL-mysql 8.0.11安装教程](https://img-blog.csdnimg.cn/9b4e1fa592794f79bd9d22ae05d6fc72.png)









