Flutter 類似加入購物車動畫PiuAnimation

PiuAnimation,piu~~~的一下,可用作加入購物車、保存截屏等動畫特效

Pub.dev地址 piu_animation
GitHub地址: GitHub

Look

Simulator Screen Recording - iPhone 13 Pro - 2022-03-10 at 13.45.04.gif

無用功能第一彈:

懸停動畫一【異步任務(wù)返回true】:

loading_true.gif

懸停動畫二【異步任務(wù)返回false】:

loading_false.gif

添加方法【第一種,普通的縮放piu動畫】

PiuAnimation.addAnimation(
            rootKey,   //主Widget GlobalKey
            piuWidget, //Child
            endOffset, //終點坐標
            maxWidth: MediaQuery.of(context).size.width, //Child最大寬度
            doSomethingBeginCallBack: () { //動畫開始回調(diào)
                print("動畫開始");
             },     
            doSomethingFinishCallBack: () { //動畫結(jié)束回調(diào)
                print("動畫結(jié)束");
            });
//其中還有動畫時長、懸停最小寬度等屬性設(shè)置

添加方法【第二種,懸停loading動畫】

PiuAnimation.addAnimation(rootKey,piuWidget,endOffset,
        maxWidth:MediaQuery.of(context).size.width,
        loadingCallback:loadingCallBack,
        doSomethingBeginCallBack:(){
            print("動畫開始");
        },doSomethingFinishCallBack:(success){
            if(success){
                print("loading 成功 動畫結(jié)束");
            }else{
                print("loading 失敗 動畫結(jié)束");
            }
        });

//異步方法定義,demo先通過delayed使用,正常業(yè)務(wù)邏輯中可以通過接口回調(diào)控制true和false
        //任務(wù)成功
        Future<bool> loadingSuccessFunction() {
            return Future.delayed(const Duration(milliseconds: 2000),(){
                return true;
            });
        }

        //任務(wù)失敗
        Future<bool> loadingFieldFunction() {
            return Future.delayed(const Duration(milliseconds: 2000),(){
                return false;
            });
        }

使用方式詳見main.dart

//通過GlobalKey獲取終點坐標,及大小等
//demo終點坐標為按鈕的中心點
RenderBox box = key.currentContext!.findRenderObject() as RenderBox;
    var offset = box.localToGlobal(Offset.zero);
    Offset endOffset =
        Offset(offset.dx + box.size.width / 2, offset.dy + box.size.height / 2);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容