From 12d6db5780d8a2121a3bef2d58bf897b24ff552a Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期三, 12 六月 2024 15:54:29 +0800 Subject: [PATCH] Merge branch 'dev' --- app/src/main/java/com/hdl/photovoltaic/widget/BTypeTitleListDialog.java | 118 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 118 insertions(+), 0 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/widget/BTypeTitleListDialog.java b/app/src/main/java/com/hdl/photovoltaic/widget/BTypeTitleListDialog.java new file mode 100644 index 0000000..8668333 --- /dev/null +++ b/app/src/main/java/com/hdl/photovoltaic/widget/BTypeTitleListDialog.java @@ -0,0 +1,118 @@ +package com.hdl.photovoltaic.widget; + +import android.annotation.SuppressLint; +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.view.View; + +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.DialogTypeTitleListBBinding; +import com.hdl.photovoltaic.widget.adapter.TypeListDialogAdapter; + +import java.util.List; + +public class BTypeTitleListDialog extends BaseDialog { + private OnClickListener mOnClickListener; + private DialogTypeTitleListBBinding viewBinding; + + private TypeListDialogAdapter typeListDialogAdapter; + + private Context mContext; + String mSelectType; + + private List<String> mList; + + public BTypeTitleListDialog(@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 = DialogTypeTitleListBBinding.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); + } +} -- Gitblit v1.8.0