package com.ved.musicmapapp.views; import android.content.Context; import android.graphics.Rect; import android.support.v4.widget.SlidingPaneLayout; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import com.ved.musicmapapp.R; public class MySlidingPaneLayout extends SlidingPaneLayout { private int menuWidth; private boolean isChildMove = true; private boolean isSlidingEnable = true; public MySlidingPaneLayout(Context context, AttributeSet attrs) { super(context, attrs); menuWidth = (int) (52 * context.getResources().getDisplayMetrics().density); } @Override public boolean onInterceptTouchEvent(MotionEvent event) { View scroll = findViewById(R.id.frame_content); if (!isSlidingEnable) { return false; } if (!isOpen() && scroll != null && isChildMove) { Rect rect = new Rect(); scroll.getHitRect(rect); rect.set(rect.left + menuWidth, rect.top, rect.right, rect.bottom); if (rect.contains((int) event.getX(), (int) event.getY())) { return false; } } try { return super.onInterceptTouchEvent(event); } catch (Exception e) { return false; } } public boolean isChildMove() { return isChildMove; } public void setChildMove(boolean isChildMove) { this.isChildMove = isChildMove; } public boolean isSlidingEnable() { return isSlidingEnable; } public void setSlidingEnable(boolean enable) { isSlidingEnable = enable; } @Override public boolean onTouchEvent(MotionEvent ev) { if (!isSlidingEnable) { View scroll = findViewById(R.id.frame_content); if (scroll != null) { scroll.dispatchTouchEvent(ev); return true; } } return super.onTouchEvent(ev); } }