12

I doing this In Android 1.6 and 2.2 ...

I have One ScrollView in the Activity (All the content in the ScrollView) ...

And Second is, One ListView in the Activity ....

When I Scroll ListView, at that time ScrollView is scrolling but ListView's Scroll is not working ...

I provide the scatch of the problem which I have ...

If anyone have solution of this, then please share ...

enter image description here

Darshak
  • 2,258
  • 4
  • 20
  • 45
  • Romain Guy (Android engineer) [suggested](http://stackoverflow.com/a/3496042/1521536) that you should ***not*** use a scrollable view inside a `ScrollView`. This question seems to be a duplicate of that answer's question too. –  Feb 25 '13 at 08:00
  • possible duplicate of [How can I put a ListView into a ScrollView without it collapsing?](http://stackoverflow.com/questions/3495890/how-can-i-put-a-listview-into-a-scrollview-without-it-collapsing) – Ian Roberts Feb 28 '13 at 11:58

2 Answers2

33

here parentScroll = your main scrollview and childScroll = your listview

parentScroll.setOnTouchListener(new View.OnTouchListener() {

                public boolean onTouch(View v, MotionEvent event) {
                    Log.v("PARENT", "PARENT TOUCH");
                    findViewById(R.id.child_scroll).getParent()
                            .requestDisallowInterceptTouchEvent(false);
                    return false;
                }
            });

  childScroll.setOnTouchListener(new View.OnTouchListener() {

                public boolean onTouch(View v, MotionEvent event) {
                    Log.v("CHILD", "CHILD TOUCH");
                    // Disallow the touch request for parent scroll on touch of
                    // child view
                    v.getParent().requestDisallowInterceptTouchEvent(true);
                    return false;
                }
            });
kyogs
  • 6,598
  • 1
  • 33
  • 50
5
   svView.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            int action = event.getAction();
            switch (action) {
            case MotionEvent.ACTION_DOWN:
                // Disallow ScrollView to intercept touch events.
                v.getParent().requestDisallowInterceptTouchEvent(true);
                break;

            case MotionEvent.ACTION_UP:
                // Allow ScrollView to intercept touch events.
                v.getParent().requestDisallowInterceptTouchEvent(false);
                break;
            }

            // Handle ListView touch events.
            v.onTouchEvent(event);
            return true;
        }
    });
semih
  • 851
  • 9
  • 14