Flutter笔记 持续采坑中

开发环境:Android Studio+flutter插件

1.引入第三方包后需要杀死应用后重新运行,才能真正将第三方包部署上去,不然直接ctrl+s或者点小闪电(热更新)会导致Unhandled Exception: MissingPluginException(No implementation found for method xxx on channel

2.点击空白隐藏键盘,在根布局下通过手势判断,手指抬起时根布局获取焦点从而将输入框的焦点挤掉,键盘也就自动隐藏了

child:GestureDetector(
        behavior: HitTestBehavior.translucent,
        onTap: () {
          // 触摸收起键盘
          FocusScope.of(context).requestFocus(FocusNode());
          },
        child: Container()
      )

3.按钮设置边距margin和padding之类的可以通过外包一层Container(),在Container中设置margin和padding

padding: EdgeInsetsDirectional.fromSTEB(10, 0, 10, 0),    //左,上,右,下,顺时针
margin: EdgeInsetsDirectional.fromSTEB(10, 10, 10, 10),   //左,上,右,下,顺时针

4.弹Toast 使用  FlutterToast

5.onPressed的小坑:原本想通过自定义一个VoidCallback类,将其赋值给onPressed从而将onPressed中的方法抽出来放到该类中,结果发现onPressed所在的widge的页面退出和进入该页面时也会调用VoidCallback类中的代码,同时点击的时候也会调用:

...
onPressed: showToast()
...
VoidCallback showToast(){
  Fluttertoast.showToast(
      msg: "hello",
      toastLength: Toast.LENGTH_SHORT,
      gravity: ToastGravity.CENTER,
      timeInSecForIosWeb: 1,
      backgroundColor: Colors.black,
      textColor: Colors.white,
      fontSize: 16.0
  );
}

应该改为这样,才是所想要的点击一次调用一次的效果:

onPressed: (){
        showToast();
      }

void showToast(){
  Fluttertoast.showToast(
      msg: "hello",
      toastLength: Toast.LENGTH_SHORT,
      gravity: ToastGravity.CENTER,
      timeInSecForIosWeb: 1,
      backgroundColor: Colors.black,
      textColor: Colors.white,
      fontSize: 16.0
  );
}

6.热更新只针对flutter的代码改动有效,对各自平台(Android,ios)的代码需要关闭应用重新运行才行 

 

先记录,多了再重新整理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值