package com.hjx.parent.dialog; import android.app.AlertDialog; import android.content.Context; import android.os.Bundle; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; import androidx.annotation.NonNull; import androidx.viewbinding.ViewBinding; import com.hjx.parent.R; public abstract class BaseDialog extends AlertDialog { public BaseDialog(Context context) { this(context, R.style.BaseDialog); } public BaseDialog(Context context, int themeResId) { super(context, themeResId); } public VB binding; private boolean isDialogCreated = false; public boolean isDialogCreated() { return isDialogCreated; } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = getBinding(); setContentView(binding.getRoot()); Window window = getWindow(); if (window != null) { setWindowsLayout(window); window.clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); } initView(); isDialogCreated = true; } public void onAttachedToWindow() { super.onAttachedToWindow(); onDialogStart(); } public void onDetachedFromWindow() { super.onDetachedFromWindow(); onDialogStop(); } public void setWindowsLayout(Window window) { window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); } public void initView() { } public void onDialogStart() { } public void onDialogStop() { } @NonNull public abstract VB getBinding(); }