BaseDialog.java
1.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
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<VB extends ViewBinding> 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();
}