上拉加载更多,下拉刷新,侧滑删除的实现


采用PullToRefreshScrollView + SwipeMenuRecyclerView 的组合 全局变量
private LinearLayoutManager layoutManager;
首先进行上拉下拉进行配置
PullToRefreshScrollView.setMode(PullToRefreshBase.Mode.BOTH);
表示上下拉动都会产生动作 然后设置OnRefreshListener监听,使用PullToRefreshBase.OnRefreshListener2<ScrollView>即可监听双向拉动 onPullDownToRefresh:下拉刷新 onPullUpToRefresh:上拉加载更多 备注:重点!在事件加载完成后使用完成语句来结束刷新动作
onRefreshComplete();
侧向滑动初始化
layoutManager = new LinearLayoutManager(activity);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
SwipeMenuRecyclerView.setLayoutManager(layoutManager);
SwipeMenuRecyclerView.setHasFixedSize(true);
SwipeMenuRecyclerView.setItemAnimator(new DefaultItemAnimator());// 设置Item默认动画,加也行,不加也行。
SwipeMenuRecyclerView.setLayoutManager(new WrapContentLinearLayoutManager(activity, LinearLayoutManager.VERTICAL, false));
在需要的地方使用setSwipeMenuCreator来加载侧滑删除功能
SwipeMenuRecyclerView.setSwipeMenuCreator(swipeMenuCreator);
自定义的菜单创建器
/**
     * 菜单创建器。在Item要创建菜单的时候调用。
     */
    private SwipeMenuCreator swipeMenuCreator = new SwipeMenuCreator() {
        @Override
        public void onCreateMenu(SwipeMenu swipeLeftMenu, SwipeMenu swipeRightMenu, int viewType) {
            int width = getResources().getDimensionPixelSize(R.dimen.dimen_60_dp);

            // MATCH_PARENT 自适应高度,保持和内容一样高;也可以指定菜单具体高度,也可以用WRAP_CONTENT。
            int height = ViewGroup.LayoutParams.MATCH_PARENT;


            // 添加右侧的,如果不添加,则右侧不会出现菜单。
            {
                SwipeMenuItem deleteItem = new SwipeMenuItem(activity)
                        .setBackground(R.drawable.selector_delete)
                        //.setBackgroundDrawable(R.drawable.selector_delete)
                        .setText("删除") // 文字,还可以设置文字颜色,大小等。。
                        .setTextSize(16)
                        .setTextColor(Color.WHITE)
                        .setWidth(width)
                        .setHeight(height);
                swipeRightMenu.addMenuItem(deleteItem);// 添加一个按钮到右侧侧菜单。
            }
        }
    };
其中selector_delete.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/red_delete" android:state_pressed="true" />
    <item android:drawable="@color/red_delete" />
</selector>
备注:red_delete色值#e85237 如果不需要加载侧边滑动那么可以自定义不创建菜单
private SwipeMenuCreator noswipeMenuCreator = new SwipeMenuCreator() {
        @Override
        public void onCreateMenu(SwipeMenu swipeLeftMenu, SwipeMenu swipeRightMenu, int viewType) {
        }
    };
SwipeMenuRecyclerView设置点击事件的方法
SwipeMenuRecyclerView.setSwipeMenuItemClickListener(onSwipeMenuItemClickListener);
private SwipeMenuItemClickListener onSwipeMenuItemClickListener = new SwipeMenuItemClickListener() {
        @Override
        public void onItemClick(SwipeMenuBridge menuBridge) {          
            //position 的获取方法   menuBridge.getPosition()
        }
    };