- GridView,ListView在全面屏里可能会出现顶部有空白,在它们里面的padding属性里设置top为0
- GridView里要自己设置item的大小,需要设置其AspectRatio属性
- GestureDector里的点击行为添加 behavior: HitTestBehavior.opaque,可以使其透明区域可以点击。
- UI 给出一张长图,并给定了在一个 Container 里显示长图里的某个特定区域,可以使用 Image 的 alignment 属性的 FractionalOffset(dx,dy)来设置,同样的假设我们要显示长图的底部,那么可以使用Alignment.bottom。
- 要想在一个页面里切换列表时保持上一次的滚动位置等类似场景,可以尝试给ListView的key使用PageStorageKey。
- 要想隔空调用某个当前widget的属性或是方法,可以给该Widget设置一个GlobalKey,然后通过globalKey.currentWidget获取该widget,就可调用其方法或属性,例如:
final GestureDetector ges = gesKey.currentWidget;
ges.onTap();
- 但是不能因为globalKey.currentWidget可以获得Widget,就认为可以相当于在其它页面把该Widget放入页面里,因为Widget的GlobalKey只能唯一,如果可以在其它页面里直接引入的话,就相当于树里面有两个widget拥有同样的GlobalKey,显然是违背GlobalKey的定义的。
- 假设有两个Widget重叠,想让点击上层的Widget不处理点击事件,而是把事件传递给下一层,可以使用IgnorePointer包裹上层Widget,并设置ignoring为true。
- 查看curves的属性动画效果:Flutter 动画曲线Curves 效果一览
- 想要给widget赋予id,可以使用LayoutId进行包裹。
- 使用AS跑iOS设备的时候,有些会出现app启动后无法进入页面的情况,会提示说在flutter sdk目录下的bin/cache里找不到iOS设备等信息,此时使用命令行
rm -rf /Users/jay/development/flutter/bin/cache && flutter doctor -v
清除cache目录后重新安装。
- 接上,重新安装后可能出现运行app后闪退的情况,提示
Did not find a observatory port advertised for
之类的语句,此时可以使用flutter clean
清除一波,然后再用命令行flutter run -debug -v
运行。让命令行运行后,再用AS来run工程。