Flutter 自定义加载框

在之前的布局,并没有想到加载框怎么比较好实现,说一下rn思路用的是absolute,iOS和安卓基本用是在window层上添加加载页面或者是当前页面添加一个subview,开始我想到的思路,我觉得应该和rn一样 是不是会有一个这样的控件,查了一下,用stack,里面有个position属性,但是试验了,很多的局限性,不利于封装,最后想到了dialog,我能不能再dialog上面添加加载布局呢,想想感觉应该可以,于是我就试验了起来。这里用到了加载指示器的库

flutter_spinkit: "^3.1.0"

具体操作就不在说明

 _showLoading(){
    showDialog(context:context,builder: (BuildContext context){
      return new Dialog(
          child: new Container(
              width: 150,
              height: 150,
              child:new Center(
                  child:new Container(
                    width: 150,
                    height: 150,
                    color: Colors.black38,
                    child: SpinKitCircle(
                      color: Colors.white,
                      size: 50,
                    ),
                  )
              ),
            ),
      );
    }).then((val){
      //用户点击
    });
  }

最后一看效果,不行,没有达到想要的效果,没办法,最后想想重写dialog 

那么我就开始重写

class LoadingDialog extends Dialog {

  @override
  Widget build(BuildContext context) {
    //创建透明层
    return new Material( 
      type: MaterialType.transparency,
      child: new Container(
        width: 150,
        height: 150,
        child:new Center(
            child:new Container(
              width: 150,
              height: 150,
              color: Colors.black38,
              child: SpinKitCircle(
                color: Colors.white,
                size: 50,
              ),
            )
        ),
      ),
    );
  }
}

 

还不错,最后就是在widget里面慢慢添加你想要的效果了,然后慢慢优化布局

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值