Detectar la parte superior de un ScrollView

¿Cómo puedo detectar el TOP de un ScrollView? He implementado el código para detectar la parte inferior, pero no puedo imaginar el cálculo que determina cuándo se ha alcanzado la parte superior.

@Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { int startPosition = t; View view = (View) getChildAt(getChildCount() - 1); int diff = (view.getBottom() - (getHeight() + getScrollY())); if (diff == startPosition){ oListener.onTopReached(); } else { nListener.BottomNotReached(); } /* if (diff == 0 && mListener != null) { mListener.onBottomReached(); } else if (diff == getTop()) { oListener.onTopReached(); } else { nListener.BottomNotReached(); }*/ super.onScrollChanged(l, t, oldl, oldt); } 

Como sugiere Marteinn :

  @Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { if(view.getTop()==t){ // reaches the top end } View view = (View) getChildAt(getChildCount()-1); int diff = (view.getBottom()-(getHeight()+getScrollY()+view.getTop()));// Calculate the scrolldiff if( diff <= 0 ){ // if diff is zero, then the bottom has been reached Log.d(ScrollTest.LOG_TAG, "MyScrollView: Bottom has been reached" ); } super.onScrollChanged(l, t, oldl, oldt); } 
  • Barra de desplazamiento en android
  • Diseño relativo en ScrollView
  • Android ScrollView dentro de ViewPager - cómo hacer más eficiente swiping
  • Barras de desplazamiento de estilo de tableta Gmail con barra de acción transparente
  • Android RelativeLayout alinear preocupación
  • SimpleOnGestureListener no funciona para ScrollView
  • Deshabilitar el desplazamiento de un ListView contenido dentro de un ScrollView
  • ScrollView Inside ScrollView
  • Lazy cargando ViewPagers en un ScrollView
  • ViewPager dentro de un ScrollView no se desliza correclty
  • Android, LinearLayout no se desplaza
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.