RecyclerView嵌套RecyclerView九宫格, 空白区域点击处理

参考:https://www.jianshu.com/p/9ae164fd0b47

参考:https://blog.csdn.net/fei20121106/article/details/78914928

/**

* 列表内使用九宫格,九宫格内空白区域点击

*/

public class RecyclerMarginClickHelper {

    public static  void setOnMarginClickListener(final RecyclerView recyclerView, final View.OnClickListener onClickListener){

        if(recyclerView == null || onClickListener == null){

            return;

        }

        final GestureDetector gestureDetector = new GestureDetector(recyclerView.getContext(), new GestureDetector.OnGestureListener() {

            @Override

            public boolean onDown(MotionEvent e) {

                return false;

            }

            @Override

            public void onShowPress(MotionEvent e) {

}

            @Override

            public boolean onSingleTapUp(MotionEvent e) {

                if(onClickListener != null){

                    onClickListener.onClick(recyclerView);

                }

                return false;

            }

            @Override

            public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {

                return false;

            }

            @Override

            public void onLongPress(MotionEvent e) {

}

            @Override

            public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

                return false;

            }

        });;

        recyclerView.setOnTouchListener(new View.OnTouchListener() {

            @Override

            public boolean onTouch(View view, MotionEvent motionEvent) {

                //发现只有点击了空白处,v是自身recyclerView

                if (view instanceof RecyclerView){

                    return  gestureDetector.onTouchEvent(motionEvent);

                }

                return false;

            }

        });

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容