android.view.ViewTreeObserver#removeOnScrollChangedListener ( )源码实例Demo

下面列出了android.view.ViewTreeObserver#removeOnScrollChangedListener ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: android_9.0.0_r45   文件: PopupWindow.java
/** @hide */
protected void detachFromAnchor() {
    final View anchor = getAnchor();
    if (anchor != null) {
        final ViewTreeObserver vto = anchor.getViewTreeObserver();
        vto.removeOnScrollChangedListener(mOnScrollChangedListener);
        anchor.removeOnAttachStateChangeListener(mOnAnchorDetachedListener);
    }

    final View anchorRoot = mAnchorRoot != null ? mAnchorRoot.get() : null;
    if (anchorRoot != null) {
        anchorRoot.removeOnAttachStateChangeListener(mOnAnchorRootDetachedListener);
        anchorRoot.removeOnLayoutChangeListener(mOnLayoutChangeListener);
    }

    mAnchor = null;
    mAnchorRoot = null;
    mIsAnchorRootAttached = false;
}
 
源代码2 项目: AndroidTvDemo   文件: BorderView.java
public void detachFrom(ViewGroup viewGroup)
{
    try
    {
        if (viewGroup == mViewGroup)
        {
            ViewTreeObserver viewTreeObserver = mViewGroup.getViewTreeObserver();
            viewTreeObserver.removeOnGlobalFocusChangeListener(this);
            viewTreeObserver.removeOnScrollChangedListener(this);
            viewTreeObserver.removeOnGlobalLayoutListener(this);
            viewTreeObserver.removeOnTouchModeChangeListener(this);
            borderEffect.OnDetach(mView, viewGroup);
        }
    }
    catch (Exception ex)
    {
        ex.printStackTrace();
    }
}
 
源代码3 项目: LivePlayback   文件: MetroViewBorderImpl.java
public void detachFrom(ViewGroup viewGroup) {
    try {
        if (viewGroup == mViewGroup) {
            ViewTreeObserver viewTreeObserver = mViewGroup.getViewTreeObserver();//获取view树的观察者
            viewTreeObserver.removeOnGlobalFocusChangeListener(this);//通知全局性移除相应的listener
            viewTreeObserver.removeOnScrollChangedListener(this);
            viewTreeObserver.removeOnGlobalLayoutListener(this);
            viewTreeObserver.removeOnTouchModeChangeListener(this);
            mMetroViewBorder.OnDetach(mView, viewGroup);
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}
 
源代码4 项目: TvWidget   文件: BorderView.java
public void detachFrom(ViewGroup viewGroup) {
    try {
        if (viewGroup == mViewGroup) {
            ViewTreeObserver viewTreeObserver = mViewGroup.getViewTreeObserver();
            viewTreeObserver.removeOnGlobalFocusChangeListener(this);
            viewTreeObserver.removeOnScrollChangedListener(this);
            viewTreeObserver.removeOnGlobalLayoutListener(this);
            viewTreeObserver.removeOnTouchModeChangeListener(this);
            borderEffect.OnDetach(mView, viewGroup);
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}
 
源代码5 项目: TVSample   文件: MetroViewBorderImpl.java
public void detachFrom(ViewGroup viewGroup) {
    try {
        if (viewGroup == mViewGroup) {
            ViewTreeObserver viewTreeObserver = mViewGroup.getViewTreeObserver();//获取view树的观察者
            viewTreeObserver.removeOnGlobalFocusChangeListener(this);//通知全局性移除相应的listener
            viewTreeObserver.removeOnScrollChangedListener(this);
            viewTreeObserver.removeOnGlobalLayoutListener(this);
            viewTreeObserver.removeOnTouchModeChangeListener(this);
            mMetroViewBorder.OnDetach(mView, viewGroup);
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}
 
源代码6 项目: TVSample   文件: MetroViewBorderImpl.java
public void detachFrom(ViewGroup viewGroup) {
    try {
        if (viewGroup == mViewGroup) {
            ViewTreeObserver viewTreeObserver = mViewGroup.getViewTreeObserver();
            viewTreeObserver.removeOnGlobalFocusChangeListener(this);
            viewTreeObserver.removeOnScrollChangedListener(this);
            viewTreeObserver.removeOnGlobalLayoutListener(this);
            viewTreeObserver.removeOnTouchModeChangeListener(this);
            mMetroViewBorder.OnDetach(mView, viewGroup);
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}
 
/**
 * 取消注册 ViewTreeObserver
 */
private void unRegisterViewTreeObserver(Activity activity) {
    ViewTreeObserver viewTreeObserver = activity.getWindow().getDecorView().getViewTreeObserver();
    viewTreeObserver.removeOnGlobalFocusChangeListener(AppViewTreeObserver.getInstance());
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        viewTreeObserver.removeOnGlobalLayoutListener(AppViewTreeObserver.getInstance());
    }
    viewTreeObserver.removeOnScrollChangedListener(AppViewTreeObserver.getInstance());
}
 
源代码8 项目: ParallaxEverywhere   文件: PEWTextView.java
@Override
protected void onDetachedFromWindow() {
    ViewTreeObserver viewTreeObserver = getViewTreeObserver();
    viewTreeObserver.removeOnScrollChangedListener(mOnScrollChangedListener);
    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        viewTreeObserver.removeOnGlobalLayoutListener(mOnGlobalLayoutListener);
    } else {
        viewTreeObserver.removeGlobalOnLayoutListener(mOnGlobalLayoutListener);
    }
    if (updateOnDraw
            && android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        viewTreeObserver.removeOnDrawListener(onDrawListener);
    }
    super.onDetachedFromWindow();
}
 
源代码9 项目: ParallaxEverywhere   文件: PEWImageView.java
@Override
protected void onDetachedFromWindow() {
    ViewTreeObserver viewTreeObserver = getViewTreeObserver();
    viewTreeObserver.removeOnScrollChangedListener(mOnScrollChangedListener);
    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        viewTreeObserver.removeOnGlobalLayoutListener(mOnGlobalLayoutListener);
    } else {
        viewTreeObserver.removeGlobalOnLayoutListener(mOnGlobalLayoutListener);
    }
    if (updateOnDraw
        && android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
            viewTreeObserver.removeOnDrawListener(onDrawListener);
    }
    super.onDetachedFromWindow();
}
 
源代码10 项目: mobile-sdk-android   文件: AdWebView.java
private void removeViewTreeObserverListeners() {
    ViewTreeObserver treeObserver = getViewTreeObserver();
    if (treeObserver.isAlive()) {
        treeObserver.removeOnScrollChangedListener(this);
        treeObserver.removeGlobalOnLayoutListener(this);
    }
}
 
源代码11 项目: mobile-sdk-android   文件: AdWebView.java
private void setupViewTreeObserver() {
    ViewTreeObserver treeObserver = getViewTreeObserver();
    if (treeObserver.isAlive()) {
        treeObserver.removeOnScrollChangedListener(this);
        treeObserver.removeGlobalOnLayoutListener(this);

        treeObserver.addOnScrollChangedListener(this);
        treeObserver.addOnGlobalLayoutListener(this);
    }
}
 
/**
 * Stop listening for scroll changes and interpolating based on position.
 *
 * @param viewTreeObserver {@link ViewTreeObserver belonging to the {@link View} being
 * interpolated.
 */
public void stopListeningForScrollChanges(@NonNull ViewTreeObserver viewTreeObserver) {
  viewTreeObserver.removeOnScrollChangedListener(scrollChangedListener);
}