我的应用程序包含多个 View (可滚动),其中之一是 CustomView(扩展 View ),当此 View 进入可见区域时是否会触发任何 android 事件。
我的方法是在 onAttachedToWindow
到 onDetachedToWindow
的时间范围内使用后台线程
该线程将使用 customView.getGlobalVisibleRect(rectangle)
来检查 View 的任何部分是否在屏幕上可见,但这是自旋锁方法,是否有更好的方法来检测可见性,任何获取的事件在我可以调用 getGlobalVisibleRect
最佳答案
这是一个使用 ViewTreeObserver 的示例代码:
final View viewTemp = convertView;
convertView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int rowHeight = viewTemp.getGlobalVisibleRect();
...
});
注意事项:
- 我不知道您的代码,也没有发布。代码
viewTemp = convertView
只是一个示例,使用适配器的代码。 - 当出于多种原因绘制布局时,这是一个监听器。
关于android - 当 Android View 在应用程序中可见时是否会触发任何事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31995545/