2

私のAndroidアプリケーションでは、多くの子ビューを持つスクロールビューがあります。ユーザーのスクロールアクションによってビューが表示から「ユーザーには表示されない」に切り替わるときに、イベントをリッスンするにはどうすればよいですか?

4

2 に答える 2

0

したがって、デフォルトのScrollViewは、いかなる種類のスクロールリスナーも提供しませんがonScrollChanged()、ユーザーがスクロールすると呼び出しを行うため、独自のスクロールリスナーを実装できます。

public class YourScrollView extends ScrollView {
  private ScrollListener scrollListener;

  ... // constructors etc

  public void setScrollListener(ScrollListener scrollViewListener) {
    this.scrollListener = scrollViewListener;
  }

  @Override
  protected void onScrollChanged(int x, int y, int oldx, int oldy) {
    super.onScrollChanged(x, y, oldx, oldy);

    if (scrollListener != null) {  //I don't care about the direction, you might.
      scrollListener.onScrollChanged(); 
    }
  }

  public static interface ScrollListener {
    public void onScrollChanged();
  }

}

これで、onScrollChangedビューを確認して、表示されているかどうかを確認できます。

int[] location = {0,0};
view.getLocationOnScreen(location);

//container height is the height of the scrollview
if (location[1] + view.getBottom() < 0 || location[1]  > containerHeight) {
  //your view is not visible
}
于 2012-06-09T00:04:16.803 に答える
0

あなたが達成したいことは何ですか?おそらく、私たちが提案できる他の解決策があります。

onVisibilityChanged子ビューにイベントハンドラーを追加できます。これは、ビューの可視性が変化したときに呼び出されます。これに関するAndroidのドキュメントはここにあります。

于 2012-06-09T00:11:53.210 に答える