android - 如何检测我的 View 何时移动?

标签 android

我的 Activity 中有一个 View 。我想检测它何时因任何操作(用户滚动、相对 View 调整大小、移动内容等)而在屏幕上移动。这意味着在一个库中,所以我可以查询层次结构,但我不控制它,除了添加事件监听器之外我也不能修改它。

有什么方法可以将其作为事件而不是轮询?

最佳答案

一个事件: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);
}

来源:Android源代码(4.0),android.view.SurfaceView.java:205

关于android - 如何检测我的 View 何时移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9614383/

相关文章:

java - Jackson - 使用 loadDataFromNetwork() 方法通过 Robospice 读取 JSON 数组

安卓 : Search from Large Arraylist

android - Delphi Android 内存泄漏(或其他减速)

android sipdroid RTP 数据包类 hasMarker 函数总是返回 false。

Android:无法启动 Activity ComponentInfo{/com.}:android.view.InflateException:二进制 XML 文件行错误膨胀类 fragment

java - Android Q - 通过 NFC 启动隐私更改 Activity

Android - 如何知道设备是否只有 WiFi?

android - 如何获得 1 :1 pixels on android emulator?

android - ActionBarActivity 和 ActivityUnitTest - NameNotFoundException

android - onListItemClick() 不适用于 Android 中的 ListView