Flutter 側滑刪除側滑操作控制項

2021-10-08 05:19:40 字數 2090 閱讀 5906

簡單的側滑操作控制項,支援左滑和右滑以及三種滑出樣式,互斥事件使用了eventbus,可換成其它方式實現。其中「screenmanager.getinstance().screenwidth」是螢幕的寬度。

///側滑控制項

class sideslidewidget extends statefulwidget )

: super(key: key);

@override

statecreatestate()

}class sideslidestate extends state

with tickerproviderstatemixin ;

animationcontroller animationcontroller;

globalkey _sideviewkey = globalkey();

streamsubscription _subscription;

double _lowerbound;

double _upperbound;

@override

void initstate()

});widgetsbinding.instance.addpostframecallback((duration)

animationcontroller = animationcontroller(

lowerbound: _lowerbound,

upperbound: _upperbound,

vsync: this,

duration: duration(milliseconds: 200))

..addlistener(() );

});});

gestures[horizontaldraggesturerecognizer] =

gesturerecognize***ctorywithhandlers(

() => horizontaldraggesturerecognizer(debugowner: this),

(horizontaldraggesturerecognizer instance) ,);}

@override

widget build(buildcontext context)

return widget.child;

}widget buildfloatingtypewidget()

widget buildrolltypewidget()

widget buildcovertypewidget()

void onhorizontaldragdown(dragdowndetails details)

void onhorizontaldragupdate(dragupdatedetails details) else if (widget.directiontype == directiontype.right)

setstate(() {});

}void onhorizontaldragend(dragenddetails details)

if (details.velocity.pixelspersecond.dx > 200) else if (details.velocity.pixelspersecond.dx < -200) else else

}break;

case directiontype.right:

if (_translatex > _maxdragdistance / 2)

if (details.velocity.pixelspersecond.dx > 200) else if (details.velocity.pixelspersecond.dx < -200) else else

}break;

}if (sendevent && widget.index != null)

}void open(double maxdragdistance) );}}

void close() );

}@override

void dispose()

}enum slidetype

enum directiontype

Flutter開發 側滑刪除

昨天的乙個需求,需要完成側滑刪除這個功能,現在dismissible的功能需求滿足不了現在的專案需求,就自己封裝乙個小組將 涉及到疊層,動畫,狀態管理 底部的列表 operationarea context,index 控制按鈕的區域 控制操作區域是否開啟 widget operationarea ...

RecyclerView 側滑刪除實現 一

前段時間因為專案需求,實現乙個側滑刪除的功能,就自己實現了乙個。這篇部落格要介紹的是側滑的一些基礎知識,也是在實際的開發過程中,較難以理解的部分。一.關於view 的 scrollto,getscrollx 和 getscrolly 當利用 scroller 去滑動螢幕或者擴充套件 scrollvi...

SlidingMenu 簡單側滑

slidingmenu menu new slidingmenu this menu.setmode slidingmenu.left 設定側滑 左滑 還是右滑 menu.settouchmodeabove slidingmenu.sliding window 設定觸控螢幕的模式 menu.setb...