Java tutorial
//package com.java2s; /* * 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.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 */ // aldenml: The new api is just the same logic //if (hasJellyBean()) { // view.getViewTreeObserver().removeOnGlobalLayoutListener(this); //} else { view.getViewTreeObserver().removeGlobalOnLayoutListener(this); //} runnable.run(); } }; view.getViewTreeObserver().addOnGlobalLayoutListener(listener); } }