How to determine when my view is moving?

I have a look in my work. I want to detect when it was moving around the screen due to some action (custom scrolls, relative views resize content, etc.). It should be in the library, so I can request a hierarchy, but I do not control it, nor can I change it, except to add event listeners.

Is there a way to get this as an event, not a poll?

+5
source share
2 answers

There is an event for this:View.getViewTreeObserver().addOnScrollChangedListener()

final ViewTreeObserver.OnScrollChangedListener mScrollChangedListener = ...;

@Override
protected void onAttachedToWindow() {
  super.onAttachedToWindow();
  getViewTreeObserver().addOnScrollChangedListener(mScrollChangedListener);
}

@Override
protected void onDetachedFromWindow() {
  super.onDetachedFromWindow();
  getViewTreeObserver().removeOnScrollChangedListener(mScrollChangedListener);
}

Source: Android source code (4.0), android.view.SurfaceView.java:205

+7
source

Have you tried listening for drag and drop events in your view?

onDragListener, , , , Drag and Drop android: http://developer.android.com/guide/topics/ui/drag-drop.html

0

All Articles