package org.protocoderrunner.apprunner.api.widgets; import android.content.Context; import android.view.MotionEvent; import android.widget.ScrollView; /** * Created by victormanueldiazbarrales on 25/07/14. */ //http://stackoverflow.com/questions/5763304/disable-scrollview-programmatically public class PScrollView extends ScrollView { // true if we can scroll (not locked) // false if we cannot scroll (locked) private boolean mScrollable = true; public PScrollView(Context context, boolean mScrollable) { super(context); this.mScrollable = mScrollable; } public void setScrollingEnabled(boolean enabled) { mScrollable = enabled; } public boolean isScrollable() { return mScrollable; } @Override public boolean onTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: // if we can scroll pass the event to the superclass if (mScrollable) return super.onTouchEvent(ev); // only continue to handle the touch event if scrolling enabled return mScrollable; // mScrollable is always false at this point default: return super.onTouchEvent(ev); } } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { // Don't do anything with intercepted touch events if // we are not scrollable if (!mScrollable) return false; else return super.onInterceptTouchEvent(ev); } }