簡單的側滑操作控制項,支援左滑和右滑以及三種滑出樣式,互斥事件使用了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...