Подтвердить что ты не робот

Как работать, когда listview внутри scrollview?

Я делаю это в Android 1.6 и 2.2...

У меня есть один ScrollView в Activity (весь контент в ScrollView)...

И во-вторых, один ListView в Activity....

Когда я просматриваю ListView, в это время ScrollView прокручивается, но Прокрутка ListView не работает...

Я предоставляю scatch проблемы , которая у меня есть...

Если у кого-то есть решение этого вопроса, пожалуйста, поделитесь...

enter image description here

4b9b3361

Ответ 1

здесь parentScroll = ваш основной scrollview и childScroll = ваш список

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;
                }
            });

Ответ 2

   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;
        }
    });