mac
2024-06-12 12d6db5780d8a2121a3bef2d58bf897b24ff552a
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
package com.hdl.photovoltaic.widget;
 
import android.annotation.SuppressLint;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Color;
import android.graphics.PixelFormat;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.LinearLayout;
 
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
 
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.BaseDialog;
import com.hdl.photovoltaic.databinding.DialogTypeTitleListBinding;
import com.hdl.photovoltaic.widget.adapter.TypeListDialogAdapter;
 
import java.util.List;
 
import io.dcloud.common.util.DensityUtils;
 
public class TypeTitleListDialog extends BaseDialog {
 
    private OnClickListener mOnClickListener;
    private DialogTypeTitleListBinding viewBinding;
 
    private TypeListDialogAdapter typeListDialogAdapter;
 
    private Context mContext;
    String mSelectType;
 
    private List<String> mList;
 
    public TypeTitleListDialog(@NonNull Context context, List<String> list, String selectType) {
        super(context, R.style.Custom_Dialog);
        this.mContext = context;
        this.mList = list;
        this.mSelectType = selectType;
    }
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        viewBinding = DialogTypeTitleListBinding.inflate(getLayoutInflater());
        setContentView(viewBinding.getRoot());
        setDialogTouchOutsideCloseable(this);
        LinearLayoutManager linearLayout = new LinearLayoutManager(mContext);
        typeListDialogAdapter = new TypeListDialogAdapter(this.mList, mContext, this.mSelectType);
        viewBinding.typeListRl.setLayoutManager(linearLayout);
        viewBinding.typeListRl.setAdapter(typeListDialogAdapter);
        typeListDialogAdapter.setItemOnclickListener(new TypeListDialogAdapter.OnclickListener() {
            @Override
            public void onClick(int position, String title) {
                dismiss();
                if (mOnClickListener != null) {
                    mOnClickListener.onClick(position, title);
                }
            }
        });
    }
 
    @Override
    protected void onStart() {
        super.onStart();
//        // 获取窗口对象
//        Window dialogWindow = this.getWindow();
//        if (dialogWindow != null) {
//            // 获取对话框当前的参数值
//            WindowManager.LayoutParams p = dialogWindow.getAttributes();
//            p.width = LinearLayout.LayoutParams.MATCH_PARENT;
//            p.height = LinearLayout.LayoutParams.WRAP_CONTENT;
////            p.dimAmount = 0.6f;
//            dialogWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
//            p.gravity = Gravity.BOTTOM;
//            p.y = DensityUtils.dip2px(mContext, 352);
////            //这里设置的宽高优先级高于XML中的布局设置
////            if (this.enumBoxType == BoxType.PhotoAlbumBox) {
////                p.gravity = Gravity.BOTTOM;
////            } else if (this.enumBoxType == BoxType.FlashingBox) {
////                p.dimAmount = 0f;
////            }
//            // 设置到属性配置中
//            dialogWindow.setAttributes(p);
//        }
//        setDialogTouchOutsideCloseable(this);
 
    }
 
    @SuppressLint("ClickableViewAccessibility")
    public void setDialogTouchOutsideCloseable(Dialog dialog) {
        viewBinding.typeParentCl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int top = viewBinding.dialogParentCl.getTop();
                int left = viewBinding.dialogParentCl.getLeft();
                int bottom = viewBinding.dialogParentCl.getBottom();
                int right = viewBinding.dialogParentCl.getRight();
                int y = (int) v.getY();
                int x = (int) v.getX();
                if (top < y && y < bottom) {
                } else {
                    dismiss();
                }
                if (left < x && x < right) {
 
                } else {
                    dismiss();
                }
 
            }
        });
    }
 
    public void setOnListener(OnClickListener onClickListener) {
        this.mOnClickListener = onClickListener;
    }
 
 
    public interface OnClickListener {
        void onClick(int position, String title);
    }
 
 
}