Обнаружение верхней части ScrollView


Как я могу обнаружить верхнюю часть ScrollView? я реализовал код для обнаружения дна, но я, кажется, не могу вычислить вычисление, которое определяет, когда вершина была достигнута.

     @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);
    }
1 4

1 ответ:

Как предлагает Мартейн:

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