SlidingUpPanelLayout y ScrollView

tengo unSlidingUpPanelLayout que contiene una imagen como vista superior y un localizador de vistas que debe deslizarse. losviewpager tiene 3 fragmentos y dos de ellos son vistas de lista. Por lo tanto, quiero poder expandir el localizador de vistas al levantarlo, y una vez que el localizador de vistas esté activo, quiero poder desplazar elscrollviews dentro de los fragmentos Pero al tirar hacia abajoscrollview en caso de que no haya más para desplazarse, quiero comenzar a contraer elviewpager. Así que por favor sugiera cómo hacer elSlidingUpPanelLayout colapsar al tirar de la vista de desplazamiento en caso de que no haya más contenido para desplazarse?

Aquí publico algunos de mis códigos: he intentado capturar los eventos táctiles y sobrescribir el SlidingUpPanelonInterceptTouchEvent funcionar de la siguiente manera:

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
    if (isHandled) {
        Log.i("interceptToch", "HEREEE");
        return onTouchEvent(ev);
    }
    return false;
}

Entonces, cuando SlidingUpPanelLayout se expande, configuroisHandled = false. Entonces, cuando el slideUpPanelLayout se expande, todos los eventos táctiles se pasan a sus vistas secundarias.

Y también pongoonTouchEvent en elscrollView, para desbloquear elSlidingUpPanelLayout.onInterceptTouchEvent:

public boolean onTouch(View v, MotionEvent event) {
    int action = event.getAction();
    if (action == MotionEvent.ACTION_DOWN) {
        scroll = 0;
        y = event.getY();
    } else if (action == MotionEvent.ACTION_MOVE) {
        if (scroll_view_summary.getScrollY() == 0 && event.getY() > y) {
            scroll = scroll + 1;
            if (scroll > 2) {
                // the user has pulled the list and the slidingUpPanelLauout 
                // should be able to handle the toch events again
                SlidingUpPanelLayoutCustom las = 
                    ((SaleDetailsActivity) getActivity()).getLayout();
                las.setHandle(true);
                scroll = 0;
                return false;
            }
        }
    }
    return false;
}

Pero esto no está funcionando. El problema es que una vez que elscrollview.onTouch el evento está enMotionEvent.ACTION_MOVE SlidingUpPanelLayout.onInterceptTouchEvent No se llama.SlidingUpPanelLayout.onInterceptTouchEvent se llama despuésMotionEvent.ACTION_CANCEL. Esto significa que el evento no puede pasarse a SlidingUpPanelLayout y el panel no puede colapsar.

Respuestas a la pregunta(6)

Su respuesta a la pregunta