Example usage for android.view View getViewTreeObserver

List of usage examples for android.view View getViewTreeObserver

Introduction

In this page you can find the example usage for android.view View getViewTreeObserver.

Prototype

public ViewTreeObserver getViewTreeObserver() 

Source Link

Document

Returns the ViewTreeObserver for this view's hierarchy.

Usage

From source file:Main.java

/** Runs a piece of code just before the next draw, after layout and measurement */
public static void doOnPreDraw(final View view, final boolean drawNextFrame, final Runnable runnable) {
    final OnPreDrawListener listener = new OnPreDrawListener() {
        @Override/*www  . j  a  v a 2  s. c o m*/
        public boolean onPreDraw() {
            view.getViewTreeObserver().removeOnPreDrawListener(this);
            runnable.run();
            return drawNextFrame;
        }
    };
    view.getViewTreeObserver().addOnPreDrawListener(listener);
}

From source file:com.getkeepsafe.taptargetview.ViewUtil.java

/** Executes the given {@link java.lang.Runnable} when the view is laid out **/
static void onLaidOut(final View view, final Runnable runnable) {
    if (isLaidOut(view)) {
        runnable.run();//from   www .j a  v a 2 s. c  om
        return;
    }

    final ViewTreeObserver observer = view.getViewTreeObserver();
    observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            final ViewTreeObserver trueObserver;

            if (observer.isAlive()) {
                trueObserver = observer;
            } else {
                trueObserver = view.getViewTreeObserver();
            }

            removeOnGlobalLayoutListener(trueObserver, this);

            runnable.run();
        }
    });
}

From source file:com.arlib.floatingsearchview.util.Util.java

public static void removeGlobalLayoutObserver(View view,
        ViewTreeObserver.OnGlobalLayoutListener layoutListener) {
    if (Build.VERSION.SDK_INT < 16) {
        view.getViewTreeObserver().removeGlobalOnLayoutListener(layoutListener);
    } else {//from w ww .ja  v a 2s . c  o  m
        view.getViewTreeObserver().removeOnGlobalLayoutListener(layoutListener);
    }
}

From source file:Main.java

/** Runs a piece of code after the next layout run */
public static void doAfterLayout(final View view, final Runnable runnable) {
    final OnGlobalLayoutListener listener = new OnGlobalLayoutListener() {
        @Override/*w  w  w  .  j a va 2 s  . c  o  m*/
        public void onGlobalLayout() {
            // Layout pass done, unregister for further events
            view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
            runnable.run();
        }
    };
    view.getViewTreeObserver().addOnGlobalLayoutListener(listener);
}

From source file:com.lixplor.fastutil.utils.control.KeyboardUtil.java

public static void setOnKeyboardVisibilityChangedListener(@NonNull Activity activity,
        @NonNull final OnKeyboardVisibilityChangedListener onKeyboardVisibilityChangedListener) {
    View rootLayout = activity.findViewById(android.R.id.content);
    sMyOnGlobalLayoutListener = new MyOnGlobalLayoutListener(activity, onKeyboardVisibilityChangedListener);
    rootLayout.getViewTreeObserver().addOnGlobalLayoutListener(sMyOnGlobalLayoutListener);
}

From source file:Main.java

/**
 * Runs a piece of code after the next layout run
 *
 * @param view     The {@link View} used.
 * @param runnable The {@link Runnable} used after the next layout run
 *///  w w w.j ava  2s .  c  om
@SuppressLint("NewApi")
public static void doAfterLayout(final View view, final Runnable runnable) {
    final OnGlobalLayoutListener listener = new OnGlobalLayoutListener() {
        @SuppressWarnings("deprecation")
        @Override
        public void onGlobalLayout() {
            /* Layout pass done, unregister for further events */
            view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
            runnable.run();
        }
    };
    view.getViewTreeObserver().addOnGlobalLayoutListener(listener);
}

From source file:Main.java

public static void removeGlobalLayoutListener(final View view,
        final ViewTreeObserver.OnGlobalLayoutListener listener) {
    if (view == null) {
        return;/*from  ww  w  .j a va  2 s  .  c  o m*/
    }
    removeGlobalLayoutListener(view.getViewTreeObserver(), listener);
}

From source file:Main.java

/**
 * Runs a piece of code after the next layout run
 * /*from w w w  . ja  v a2s .c  o m*/
 * @param view The {@link View} used.
 * @param runnable The {@link Runnable} used after the next layout run
 */
@SuppressLint("NewApi")
public static void doAfterLayout(final View view, final Runnable runnable) {
    final OnGlobalLayoutListener listener = new OnGlobalLayoutListener() {
        @SuppressWarnings("deprecation")
        @Override
        public void onGlobalLayout() {
            /* Layout pass done, unregister for further events */
            if (hasJellyBean()) {
                view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
            } else {
                view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
            }
            runnable.run();
        }
    };
    view.getViewTreeObserver().addOnGlobalLayoutListener(listener);
}

From source file:com.agenmate.lollipop.util.ViewUtils.java

public static void waitForLayoutPrepared(final View view, final LayoutPreparedListener listener) {
    final ViewTreeObserver viewTreeObserver = view.getViewTreeObserver();
    if (viewTreeObserver != null) {
        viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override/*from   w w  w  . j  ava  2s .  c om*/
            public void onGlobalLayout() {
                invokeLayoutListener();
                removeGlobalOnLayoutListenerIfNeeded();
            }

            private void invokeLayoutListener() {
                if (listener != null) {
                    listener.onLayoutPrepared(view);
                }
            }

            private void removeGlobalOnLayoutListenerIfNeeded() {
                final ViewTreeObserver laterViewTreeObserver = view.getViewTreeObserver();
                if (laterViewTreeObserver != null && laterViewTreeObserver.isAlive()) {
                    laterViewTreeObserver.removeGlobalOnLayoutListener(this);
                }
            }
        });
    }
}

From source file:github.nisrulz.qreader.QREader.java

@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
private static void removeOnGlobalLayoutListener(View v, ViewTreeObserver.OnGlobalLayoutListener listener) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
        v.getViewTreeObserver().removeGlobalOnLayoutListener(listener);
    } else {/*from  w  w  w  .j a v  a2s.co  m*/
        v.getViewTreeObserver().removeOnGlobalLayoutListener(listener);
    }
}