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()
作为布局用