package com.develop.common.dialog import android.os.Bundle import android.view.KeyEvent import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.RelativeLayout import com.develop.base.mvvm.FullScreenTransparentDialog import com.develop.common.databinding.DialogCancelConfirmBinding import com.develop.common.databinding.DialogCancelConfirmImageBinding import org.greenrobot.eventbus.EventBus class CancelConfirmImageDialog( ) : FullScreenTransparentDialog() { lateinit var binding: DialogCancelConfirmImageBinding var title = "" var cancelStr = "" var confirmStr = "" var showConfirm = true var showCancel = true var onDialogClickListener: OnDialogClickListener? = null override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { binding = DialogCancelConfirmImageBinding.inflate( inflater, container, false ) binding.tvYes.setOnClickListener { onDialogClickListener?.onConfirm() removeSelf() } binding.tvCancel.setOnClickListener { onDialogClickListener?.onCancel() removeSelf() } binding.tvTitle.text = title if (cancelStr.isNotEmpty()) { binding.tvCancel.text = cancelStr } if (confirmStr.isNotEmpty()) { binding.tvYes.text = confirmStr } //只显示确认按钮 if (showConfirm && !showCancel) { binding.tvCancel.visibility = View.GONE; binding.tvYes.visibility = View.VISIBLE; val layoutParams = binding.tvYes.layoutParams as RelativeLayout.LayoutParams; layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL) binding.tvCancel.layoutParams = layoutParams } if (!showConfirm && showCancel) { binding.tvYes.visibility = View.GONE; binding.tvCancel.visibility = View.VISIBLE; val layoutParams = binding.tvCancel.layoutParams as RelativeLayout.LayoutParams; layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL) binding.tvCancel.layoutParams = layoutParams } //监听旋钮点击回调 setOnKeyFun(object : onKeyFun { override fun onType() { if (binding.tvYes.visibility == View.VISIBLE) { binding.tvYes.performClick() //默认点击控件 } else if (binding.tvCancel.visibility == View.VISIBLE) { binding.tvCancel.performClick() } } }) return binding.root } fun onConfirmClick() { binding.tvYes.callOnClick() } interface OnDialogClickListener { fun onConfirm() fun onCancel() } }