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

Pra*_*eep 13 android android-layout

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

这种方法我虽然的时间范围内使用后台线程onAttachedToWindowonDetachedToWindow 此线程将使用customView.getGlobalVisibleRect(rectangle)检查视图的任何部分是否在屏幕上可见,但这是自旋锁的方法,有没有更好的办法来检测的知名度,它得到的任何事件我可以打电话到哪里 getGlobalVisibleRect

The*_*oid 11

以下是使用ViewTreeObserver的一个示例代码:

final View viewTemp = convertView;

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

笔记:

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

  • 谢谢你的回复,我也会添加OnScrollChangeListener,addOnWindowAttachListener来覆盖更多的案例 (2认同)