I had to improve the Deepthi solution because it did not work for me; I think because my child scrollview has a lot of views (I mean, child views use the entire scroll space of the view). To make it fully functional, I also had to prohibit the touch request for parent scrolling by touching all kinds of children in the scroll view of the children:
parentScrollView.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { findViewById(R.id.childScrollView).getParent().requestDisallowInterceptTouchEvent(false); return false; } }); childScrollView.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { // Disallow the touch request for parent scroll on touch of // child view v.getParent().requestDisallowInterceptTouchEvent(true); return false; } });` childScrollviewRecursiveLoopChildren(parentScrollView, childScrollView); public void childScrollviewRecursiveLoopChildren(final ScrollView parentScrollView, View parent) { for (int i = ((ViewGroup) parent).getChildCount() - 1; i >= 0; i--) { final View child = ((ViewGroup) parent).getChildAt(i); if (child instanceof ViewGroup) { childScrollviewRecursiveLoopChildren(parentScrollView, (ViewGroup) child); } else { child.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) {
poolpie
source share