Android开源堆叠滑动控件仿探探效果
程序员文章站
2023-11-30 17:54:58
堆叠滑动控件,类似于社交软件探探的效果,并增加以下扩展:
支持滑动方向控制
支持消失方向控制
支持嵌入到viewpager等滑动控件
支持内嵌listview,...
堆叠滑动控件,类似于社交软件探探的效果,并增加以下扩展:
支持滑动方向控制
支持消失方向控制
支持嵌入到viewpager等滑动控件
支持内嵌listview,recycleview等滑动控件
效果演示
如何使用
xml引入stackcardsview:
<com.beyondsw.lib.widget.stackcardsview android:id="@+id/cards" android:layout_width="match_parent" android:layout_height="match_parent" app:itemheight="340dp" app:itemwidth="340dp" android:paddingbottom="66dp" android:cliptopadding="false" />
支持的xml属性设置:
设置adapter:
mcardsview = utils.findviewbyid(root,r.id.cards); mcardsview.addoncardswipedlistener(this); madapter = new cardadapter(); mcardsview.setadapter(madapter); public class cardadapter extends stackcardsview.adapter { private list<basecarditem> mitems; public void appenditems(list<basecarditem> items){ int size = items == null ? 0 : items.size(); if (size == 0) { return; } if (mitems == null) { mitems = new arraylist<>(size); } mitems.addall(items); notifydatasetchanged(); } public void remove(int position){ mitems.remove(position); notifyitemremoved(position); } @override public int getcount() { return mitems == null ? 0 : mitems.size(); } @override public view getview(int position, view convertview, viewgroup parent) { return mitems.get(position).getview(convertview,parent); } @override public int getswipedirection(int position) { //这里控制每张卡的支持滑动超过一定距离消失的方向 basecarditem item = mitems.get(position); return item.swipedir; } @override public int getdismissdirection(int position) { //这里控制每张卡的支持滑动超过一定距离消失的方向 basecarditem item = mitems.get(position); return item.dismissdir; } @override public boolean isfastdismissallowed(int position) { //这里控制每张卡的支持快速滑动消失的方向 basecarditem item = mitems.get(position); return item.fastdismissallowed; } @override public int getmaxrotation(int position) { //这里控制每张卡的最大旋转角 basecarditem item = mitems.get(position); return item.maxrotation; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。