Android滚动到底部完成事件

时间:2015-05-14 06:37:30

标签: android

我从ScrollView扩展了简单的类,我希望在滚动完成时调用监听器,在顶部和底部调用接口监听器滚动完成时我的代码,但我只想在底部调用时调用

@Override
protected void onScrollChanged(int x, int y, int oldX, int oldY) {
    super.onScrollChanged(x, y, oldX, oldY);
    for (OnScrollChangedListener oscl : onScrollChangedListeners) {
        oscl.onVerticalScrollChanged(y);
    }
    if (mScrollStoppedListener != null && y != oldY) {
        checkIfStopped();
    }
}

如何在此方法中检测底部的滚动?我的wroted if不正确,无法正确向下滚动

2 个答案:

答案 0 :(得分:0)

通过此代码解决了我的问题。

View view = (View) getChildAt(getChildCount()-1);
int diff = (view.getBottom()-(getHeight()+getScrollY()+view.getTop()));
if( diff == 0 ){
    Log.i("ScrollView: ", " Finished on bottom of screen");
}

答案 1 :(得分:0)

这可以通过这种方式完成...... 首先,您抓住ScrollView中的最后一个孩子:

CREATE TABLE dbo.aTable (ID_User INTEGER NOT NULL PRIMARY KEY IDENTITY(1,1), Name VARCHAR(30)) END

然后检查该视图在ScrollView中是否完全可见:

View lastChild = (View) scrollView.getChildAt(scrollView.getChildCount() - 1);

因此,如果boolean isFullyScrolled = lastChild.getBottom() <= scrollView.getHeight() + scrollView.getScrollY(); isFullyScrolled,您可以通知您的听众。