当前位置: 移动技术网 > 移动技术>移动开发>Android > Android开源堆叠滑动控件仿探探效果

Android开源堆叠滑动控件仿探探效果

2019年07月24日  | 移动技术网移动技术  | 我要评论

堆叠滑动控件,类似于社交软件探探的效果,并增加以下扩展:

支持滑动方向控制
支持消失方向控制
支持嵌入到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;
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网