SwipeRecyclerView

SwipeRecyclerView

仿QQ侧滑的RecyclerView

使用方法

1. AndroidStudio

首先确保AndroidStudio对jcenter支持 (AndroidStudio v1.2以上默认使用jcenter,此处可以不用修改,只需修改Moudle的build.gradle即可)
 project的build.gradle中()
     repositories {
            jcenter()
         }
 在Moudle的build.gradle的dependencies中加入如下代码
    compile 'com.lixiaohui8636:swipe-recycler-view:1.0'

2.eclipse

添加arr文件到libs

点击下载arr文件


示例代码

Layout配置

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
                android:background="#B6B6B6">
        <com.lixiaohui8636.widget.SwipeRecyclerView
            xmlns:swipe="http://schemas.android.com/apk/res-auto"
            android:id="@+id/example_lv_list"
            android:listSelector="#00000000"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            swipe:swipeFrontView="@+id/front"
            swipe:swipeBackView="@+id/back"
            swipe:swipeOffsetLeft="25dp"
            swipe:swipeDrawableChecked="@drawable/choice_selected"
            swipe:swipeDrawableUnchecked="@drawable/choice_unselected"
            swipe:swipeCloseAllItemsWhenMoveList="true"
            swipe:swipeMode="left"
            swipe:onlyOneOpenedWhenSwipe="true"
            />
</LinearLayout>

JAVA

     swipeListView = (SwipeRecyclerView) findViewById(R.id.example_lv_list);
     mLayoutManager = new LinearLayoutManager(this);
     swipeListView.setLayoutManager(mLayoutManager);
     swipeListView.addItemDecoration(new RecyclerViewItemDecoration(10));
     swipeListView.setAdapter(adapter);
     swipeListView.addOnItemTouchListener(
         new RecyclerItemClickListener(this, new RecyclerItemClickListener.OnItemClickListener() {
              @Override public void onItemClick(View view, int position) {
                                Toast.makeText(SwipeListViewExampleActivity.this,""+position,Toast.LENGTH_LONG).show();
                            }
                        })
                );

 public class RecyclerItemClickListener implements RecyclerView.OnItemTouchListener {
     private OnItemClickListener mListener;

     public interface OnItemClickListener {
         public void onItemClick(View view, int position);
     }

     GestureDetector mGestureDetector;

     public RecyclerItemClickListener(Context context, OnItemClickListener listener) {
         mListener = listener;
         mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
             @Override
             public boolean onSingleTapUp(MotionEvent e) {
                 return true;
             }
         });
     }

     @Override
     public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) {
         View childView = view.findChildViewUnder(e.getX(), e.getY());
         if(childView==null)return true;
         View frontView=childView.findViewById(R.id.front);
         if(frontView==null)return true;
         if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)&&frontView.isClickable()) {
             mListener.onItemClick(childView, view.getChildPosition(childView));
             return true;
         }
         return false;
     }

     @Override
     public void onTouchEvent(RecyclerView view, MotionEvent motionEvent) { }

     @Override
     public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {

     }
 }

GitHub

https://github.com/lixiaohui8636/SwipeRecyclerView

效果图

图片

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值