Pase el evento de movimiento a la Vista de desplazamiento principal cuando Vista de lista en la parte superior / inferior

tengo unListView en unScrollView para mostrar comentarios y me gustaría hacer lo siguiente:

Cuando el usuario desliza hacia abajo, primero elScrollView debería desplazarse completamente hacia abajo ya que la lista está en la parte inferior. Una vez que está completamente abajo, elListiew debería comenzar a desplazarse.

Del mismo modo, cuando el usuario se desplaza hacia arriba, primero elListView (¡orden invertido aquí!) debe desplazarse hacia arriba, antes deScrollView comienza a desplazarse.

Hasta ahora he hecho lo siguiente:

listView.setOnTouchListener(new View.OnTouchListener() {
        // Setting on Touch Listener for handling the touch inside ScrollView
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            // If going up but the list is already at up, return false indicating we did not consume it.
            if(event.getAction() == MotionEvent.ACTION_UP) {
                if (listView.getChildCount() == 0 && listView.getChildAt(0).getTop() == 0) {
                    Log.e("Listview", "At top!");
                    return false;
                }
            }

            // Similar behaviour but when going down check if we are at the bottom.
            if( event.getAction() == MotionEvent.ACTION_DOWN) {
                if (listView.getLastVisiblePosition() == listView.getAdapter().getCount() - 1 &&
                        listView.getChildAt(listView.getChildCount() - 1).getBottom() <= listView.getHeight()) {
                    Log.e("Listview","At bottom!");
                    v.getParent().requestDisallowInterceptTouchEvent(false);
                    return false;
                }
            }
            v.getParent().requestDisallowInterceptTouchEvent(true);
            return false;
        }
    });

Los registros se disparan en el momento correcto, sin embargo, elScrollView&nbsp;no se moverá aunque devuelva falso.

También intenté agregarv.getParent().requestDisallowInterceptTouchEvent(false);&nbsp;a las declaraciones, pero eso tampoco funcionó.

¿Cómo puedo hacer que funcione?