Files
midi-android/moduleUtil/src/main/java/com/xscm/moduleutil/widget/ViewUtils.java
2025-08-26 19:34:44 +08:00

37 lines
1.1 KiB
Java

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);
}
}