CommonDialog.java
2.77 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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package com.studymachine.www.ui.dialog;
import android.content.Context;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.LayoutRes;
import androidx.annotation.StringRes;
import com.hjq.base.BaseDialog;
import com.studymachine.www.R;
/**
*
*
* time : 2019/09/21
* desc : 项目通用 Dialog 布局封装
*/
public final class CommonDialog {
@SuppressWarnings("unchecked")
public static class Builder<B extends CommonDialog.Builder<?>>
extends BaseDialog.Builder<B> {
private boolean mAutoDismiss = true;
private final ViewGroup mContainerLayout;
private final TextView mTitleView;
private final TextView mCancelView;
private final View mLineView;
private final TextView mConfirmView;
public Builder(Context context) {
super(context);
setContentView(R.layout.ui_dialog);
setAnimStyle(BaseDialog.ANIM_IOS);
setGravity(Gravity.CENTER);
mContainerLayout = findViewById(R.id.ll_ui_container);
mTitleView = findViewById(R.id.tv_ui_title);
mCancelView = findViewById(R.id.tv_ui_cancel);
mLineView = findViewById(R.id.v_ui_line);
mConfirmView = findViewById(R.id.tv_ui_confirm);
setOnClickListener(mCancelView, mConfirmView);
}
public B setCustomView(@LayoutRes int id) {
return setCustomView(LayoutInflater.from(getContext()).inflate(id, mContainerLayout, false));
}
public B setCustomView(View view) {
mContainerLayout.addView(view, 1);
return (B) this;
}
public B setTitle(@StringRes int id) {
return setTitle(getString(id));
}
public B setTitle(CharSequence text) {
mTitleView.setText(text);
return (B) this;
}
public B setCancel(@StringRes int id) {
return setCancel(getString(id));
}
public B setCancel(CharSequence text) {
mCancelView.setText(text);
mLineView.setVisibility((text == null || "".equals(text.toString())) ? View.GONE : View.VISIBLE);
return (B) this;
}
public B setConfirm(@StringRes int id) {
return setConfirm(getString(id));
}
public B setConfirm(CharSequence text) {
mConfirmView.setText(text);
return (B) this;
}
public B setAutoDismiss(boolean dismiss) {
mAutoDismiss = dismiss;
return (B) this;
}
public void autoDismiss() {
if (mAutoDismiss) {
dismiss();
}
}
}
}