1. ホーム
  2. android

[解決済み] ScrollViewにonScrollListenerを持たせることはできますか?

2022-04-27 08:19:31

質問

を使用しています。 HorizontalScrollView レイアウトの中で、ユーザーがスクロールの開始点と終了点に到達したことを識別する必要があります。

について ListView を試してみました。 onScrollListener で、スクロールの始点と終点を見つけることができます。

で同じことをやってみた。 Scrollview が、できないようです。私が必要とすることを実現するために、他に可能な方法はありますか。

どのように解決するのですか?

すべてのViewのインスタンスは getViewTreeObserver() . のインスタンスを保持する場合 ViewTreeObserver を追加することができます。 OnScrollChangedListener() というメソッドを使って、そこに addOnScrollChangedListener() .

このクラスに関する詳細な情報を見ることができます ここで .

これにより、すべてのスクロールイベントを認識することができます - ただし、座標は含まれません。座標を取得するには getScrollY() または getScrollX() をリスナー内部から呼び出すことができます。

scrollView.getViewTreeObserver().addOnScrollChangedListener(new OnScrollChangedListener() {
    @Override
    public void onScrollChanged() {
        int scrollY = rootScrollView.getScrollY(); // For ScrollView
        int scrollX = rootScrollView.getScrollX(); // For HorizontalScrollView
        // DO SOMETHING WITH THE SCROLL COORDINATES
    }
});