package com.xscm.moduleutil.widget; import android.os.Handler; import android.os.Looper; import android.view.View; import androidx.annotation.NonNull; import com.petterp.floatingx.listener.control.IFxControl; import com.tencent.liteav.base.Log; public class ViewUtils { public static void waitUntilViewReady(@NonNull IFxControl control, @NonNull OnViewCreatedListener listener) { final int[] retryCount = {0}; final Handler handler = new Handler(Looper.getMainLooper()); final Runnable checkRunnable = new Runnable() { @Override public void run() { View view = control.getView(); if (view != null) { listener.onViewCreated(view); } else if (retryCount[0]++ < 10) { // 最多尝试 10 次 handler.postDelayed(this, 300); // 每隔 300ms 再试一次 } else { Log.e("ViewUtils", "等待 View 创建超时"); } } }; handler.post(checkRunnable); } public interface OnViewCreatedListener { void onViewCreated(@NonNull View view); } }