예제 #1
0
  @Override
  protected void onDetachedFromWindow() {
    if (mGlobalListenersAdded) {
      ViewTreeObserver observer = getViewTreeObserver();
      observer.removeOnScrollChangedListener(mScrollChangedListener);
      observer.removeOnPreDrawListener(mDrawListener);
      mGlobalListenersAdded = false;
    }

    mRequestedVisible = false;
    updateWindow(false, false);
    mHaveFrame = false;
    if (mWindow != null) {
      try {
        mSession.remove(mWindow);
      } catch (RemoteException ex) {
        // Not much we can do here...
      }
      mWindow = null;
    }
    mSession = null;
    mLayout.token = null;

    super.onDetachedFromWindow();
  }
예제 #2
0
  @Override
  protected void onAttachedToWindow() {
    super.onAttachedToWindow();
    mParent.requestTransparentRegion(this);
    mSession = getWindowSession();
    mLayout.token = getWindowToken();
    mLayout.setTitle("SurfaceView");
    mViewVisibility = getVisibility() == VISIBLE;

    if (!mGlobalListenersAdded) {
      ViewTreeObserver observer = getViewTreeObserver();
      observer.addOnScrollChangedListener(mScrollChangedListener);
      observer.addOnPreDrawListener(mDrawListener);
      mGlobalListenersAdded = true;
    }
  }