android - 检测 ScrollView 的顶部

标签 android scrollview android-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);
    }

最佳答案

作为Marteinn suggests :

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

关于android - 检测 ScrollView 的顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28597688/

相关文章:

android - 自定义 View 不超出屏幕范围

javascript - 如何添加到Android移动设备的 'Add to homescreen'弹出窗口

android - 可选择的RecyclerView性能问题

swift - 为什么我的 ScrollView 中的内容 View 没有响应

iphone - 无限滚动 - setContentOffset : stops deceleration of UIScrollView

Android WebView跳到底部

Android 事件总线替代方案

logcat 中的 Android SELinux 错误

iphone - 如何控制ScrollView,不重复重复

android - 滚动器中 startScroll 背后的逻辑?