web-dev-qa-db-ja.com

Android:ScrollViewが下に達したときの検出

可能性のある複製:
scrollViewがAndroidで最下部に到達したときにイベントをトリガーする方法

ScrollViewが画面の最下部に到達したことを検出するために、1時間ほど試みました。さまざまな画面サイズとAndroidに関係しないもののため、Y位置が特定の値に達したときに底にあると単純に言うことはできませんが、底にあることを検出する方法はありません。

私はこれに対する簡単な解決策があると確信しています、他の変数または何かによってビューの高さを減算しますが、何らかの理由でそれは私のためにクリックしていません。どんなアイデアでも感謝します、ありがとう。

38
Peacecraft

これを試して:

@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) 
{
    // Grab the last child placed in the ScrollView, we need it to determinate the bottom position.
    View view = (View) getChildAt(getChildCount()-1);

    // Calculate the scrolldiff
    int diff = (view.getBottom()-(getHeight()+getScrollY()));

    // if diff is zero, then the bottom has been reached
    if( diff == 0 )
    {
        // notify that we have reached the bottom
        Log.d(ScrollTest.LOG_TAG, "MyScrollView: Bottom has been reached" );
    }

    super.onScrollChanged(l, t, oldl, oldt);
}

これを実装するには、ScrollViewを拡張し、onScrollChangedメソッド(Viewから継承)をオーバーライドします。

参照: Android:ScrollViewが最下部に到達したことを理解する

82
Harry Joy