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

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

源代码1 项目: android_9.0.0_r45   文件: ActivityChooserView.java
@Override
protected void onDetachedFromWindow() {
    super.onDetachedFromWindow();
    ActivityChooserModel dataModel = mAdapter.getDataModel();
    if (dataModel != null) {
        dataModel.unregisterObserver(mModelDataSetOberver);
    }
    ViewTreeObserver viewTreeObserver = getViewTreeObserver();
    if (viewTreeObserver.isAlive()) {
        viewTreeObserver.removeOnGlobalLayoutListener(mOnGlobalLayoutListener);
    }
    if (isShowingPopup()) {
        dismissPopup();
    }
    mIsAttachedToWindow = 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 项目: sa-sdk-android   文件: EditState.java
private void cleanUp() {
    if (mAlive) {
        final View viewRoot = mViewRoot.get();
        if (null != viewRoot) {
            final ViewTreeObserver observer = viewRoot.getViewTreeObserver();
            if (observer.isAlive()) {
                if (Build.VERSION.SDK_INT < 16) {
                    observer.removeGlobalOnLayoutListener(this);
                } else {
                    observer.removeOnGlobalLayoutListener(this);
                }
            }
        }
        mEdit.cleanup();
    }
    mAlive = false;
}
 
源代码4 项目: Scrollable   文件: ViewUtils.java
static void removeGlobalLayoutListener(View view, ViewTreeObserver.OnGlobalLayoutListener onGlobalLayoutListener) {

        final ViewTreeObserver observer = view.getViewTreeObserver();
        if (!observer.isAlive()) {
            return;
        }

        if (Build.VERSION.SDK_INT >= 16) {
            observer.removeOnGlobalLayoutListener(onGlobalLayoutListener);
        } else {
            //noinspection deprecation
            observer.removeGlobalOnLayoutListener(onGlobalLayoutListener);
        }
    }
 
源代码5 项目: imsdk-android   文件: WorkWorldDetailsAdapter.java
@SuppressWarnings("deprecation")
@SuppressLint("NewApi")
private void removeGlobalOnLayoutListener(ViewTreeObserver obs, ViewTreeObserver.OnGlobalLayoutListener listener) {
    if (obs == null)
        return;
    if (Build.VERSION.SDK_INT < 16) {
        obs.removeGlobalOnLayoutListener(listener);
    } else {
        obs.removeOnGlobalLayoutListener(listener);
    }
}
 
源代码6 项目: styT   文件: MaterialTapTargetPrompt.java
/**
 * Removes global layout listener added in {@link #addGlobalLayoutListener()}.
 */
void removeGlobalLayoutListener() {
    final ViewTreeObserver viewTreeObserver = mView.mPromptOptions.getResourceFinder().getPromptParentView().getViewTreeObserver();
    if (viewTreeObserver.isAlive()) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
            viewTreeObserver.removeOnGlobalLayoutListener(mGlobalLayoutListener);
        } else {
            //noinspection deprecation
            viewTreeObserver.removeGlobalOnLayoutListener(mGlobalLayoutListener);
        }
    }
}
 
源代码7 项目: 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();
}
 
源代码8 项目: Mizuu   文件: MizLib.java
/**
 * Helper method to remove a ViewTreeObserver correctly, i.e.
 * avoiding the deprecated method on API level 16+.
 * @param vto
 * @param victim
 */
@SuppressWarnings("deprecation")
public static void removeViewTreeObserver(ViewTreeObserver vto, OnGlobalLayoutListener victim) {
    if (MizLib.hasJellyBean()) {
        vto.removeOnGlobalLayoutListener(victim);
    } else {
        vto.removeGlobalOnLayoutListener(victim);
    }
}
 
源代码9 项目: ListItemView   文件: ViewUtils.java
public static void removeGlobalLayoutObserver(final ViewTreeObserver observer,
        ViewTreeObserver.OnGlobalLayoutListener layoutListener) {
    if (Build.VERSION.SDK_INT < 16) {
        observer.removeGlobalOnLayoutListener(layoutListener);
    } else {
        observer.removeOnGlobalLayoutListener(layoutListener);
    }
}
 
源代码10 项目: 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();
    }
}
 
源代码11 项目: 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();
}
 
/**
 * Remove a previously installed global layout callback.
 * @param observer the view observer
 * @param victim the victim
 */
@SuppressLint("NewApi")
@SuppressWarnings("deprecation")
public static void removeOnGlobalLayoutListener(ViewTreeObserver observer, ViewTreeObserver.OnGlobalLayoutListener victim) {
    // Future (API16+)...
    if (Build.VERSION.SDK_INT >= 16) {
        observer.removeOnGlobalLayoutListener(victim);
    }
    // Legacy...
    else {
        observer.removeGlobalOnLayoutListener(victim);
    }
}
 
源代码13 项目: 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();
    }
}
 
源代码14 项目: 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();
    }
}
 
源代码15 项目: 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();
    }
}
 
@Override
public final void onGlobalLayout() {
    ViewTreeObserver observer = mView.getViewTreeObserver();
    if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN) {
        observer.removeGlobalOnLayoutListener(this);
    } else {
        observer.removeOnGlobalLayoutListener(this);
    }
    mRunnable.run();
}
 
源代码17 项目: styT   文件: ViewUtil.java
@SuppressWarnings("deprecation")
static void removeOnGlobalLayoutListener(ViewTreeObserver observer,
                                         ViewTreeObserver.OnGlobalLayoutListener listener) {
    observer.removeOnGlobalLayoutListener(listener);
}
 
源代码18 项目: Linphone4Android   文件: ApiTwentyOnePlus.java
public static void removeGlobalLayoutListener(ViewTreeObserver viewTreeObserver, OnGlobalLayoutListener keyboardListener) {
	viewTreeObserver.removeOnGlobalLayoutListener(keyboardListener);		
}
 
源代码19 项目: Noyze   文件: FullscreenPopupWindow.java
@Override
public void onDetachedFromWindow() {
    super.onDetachedFromWindow();
    ViewTreeObserver vto = mLayout.getViewTreeObserver();
    vto.removeOnGlobalLayoutListener(this);
}
 
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
private static void removeGlobalLayoutListenerJB(ViewTreeObserver observer,
        OnGlobalLayoutListener listener) {
    observer.removeOnGlobalLayoutListener(listener);
}