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.DialogTypeTitleListBinding; import com.hdl.photovoltaic.widget.adapter.TypeListDialogAdapter; import java.util.List; public class TypeTitleListDialog extends BaseDialog { private OnClickListener mOnClickListener; private DialogTypeTitleListBinding viewBinding; private TypeListDialogAdapter typeListDialogAdapter; private Context mContext; private List mList; public TypeTitleListDialog(@NonNull Context context, List list) { super(context, R.style.Custom_Dialog); this.mContext = context; this.mList = list; } @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); 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); } } }); } @SuppressLint("ClickableViewAccessibility") public void setDialogTouchOutsideCloseable(Dialog dialog) { viewBinding.getRoot().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int top = viewBinding.typeParentCl.getTop(); int left = viewBinding.typeParentCl.getLeft(); int bottom = viewBinding.typeParentCl.getBottom(); int right = viewBinding.typeParentCl.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); } }