Here you can find the source of doAfterLayout(final View view, final Runnable runnable)
Parameter | Description |
---|---|
view | The View used. |
runnable | The Runnable used after the next layout run |
@SuppressLint("NewApi") public static void doAfterLayout(final View view, final Runnable runnable)
//package com.java2s; /*/* w w w. j a va2 s. c o m*/ * Copyright (C) 2012 Andrew Neal Licensed under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with the * License. You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law * or agreed to in writing, software distributed under the License is * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ import android.annotation.SuppressLint; import android.os.Build; import android.view.View; import android.view.ViewTreeObserver.OnGlobalLayoutListener; public class Main { /** * 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 */ @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); } /** * Used to determine if the device is running Jelly Bean or greater * * @return True if the device is running Jelly Bean or greater, false * otherwise */ public static final boolean hasJellyBean() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN; } }