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; /*/*from w w w . j a v a 2 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.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() { view.getViewTreeObserver().removeGlobalOnLayoutListener( this); runnable.run(); } }; view.getViewTreeObserver().addOnGlobalLayoutListener(listener); } }