Flutter里的一些小问题

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值