37 lines
1.1 KiB
Java
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);
|
|
}
|
|
}
|