当Android View在App中可见时,是否有任何事件被触发?

时间:2015-08-13 18:12:28

标签: android android-layout

我的应用程序包含多个视图(可滚动),其中一个是CustomView(扩展视图),当此视图进入可见区域时,是否有任何安卓事件被触发。

我在onAttachedToWindowonDetachedToWindow的时间范围内使用后台线程的方法 该线程将使用customView.getGlobalVisibleRect(rectangle)来检查视图的任何部分是否在屏幕上可见,但这是旋转锁定方法,是否有更好的方法来检测可见性,任何在我可以调用{{1 }}

1 个答案:

答案 0 :(得分:9)

以下是使用 ViewTreeObserver

的一个示例代码
final View viewTemp = convertView;

convertView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
   @Override
   public void onGlobalLayout() {
      int rowHeight = viewTemp.getGlobalVisibleRect();
      ...
   });

注意:

  • 我不知道你的代码而且没有发布。代码viewTemp = convertView只是一个示例,代码来自使用适配器。
  • 当出于任何原因绘制布局时,这是一个监听器。