CancelConfirmImageDialog.kt 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package com.develop.common.dialog
  2. import android.os.Bundle
  3. import android.view.KeyEvent
  4. import android.view.LayoutInflater
  5. import android.view.View
  6. import android.view.ViewGroup
  7. import android.widget.RelativeLayout
  8. import com.develop.base.mvvm.FullScreenTransparentDialog
  9. import com.develop.common.databinding.DialogCancelConfirmBinding
  10. import com.develop.common.databinding.DialogCancelConfirmImageBinding
  11. import org.greenrobot.eventbus.EventBus
  12. class CancelConfirmImageDialog(
  13. ) : FullScreenTransparentDialog() {
  14. lateinit var binding: DialogCancelConfirmImageBinding
  15. var title = ""
  16. var cancelStr = ""
  17. var confirmStr = ""
  18. var showConfirm = true
  19. var showCancel = true
  20. var onDialogClickListener: OnDialogClickListener? = null
  21. override fun onCreateView(
  22. inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
  23. ): View {
  24. binding = DialogCancelConfirmImageBinding.inflate(
  25. inflater, container, false
  26. )
  27. binding.tvYes.setOnClickListener {
  28. onDialogClickListener?.onConfirm()
  29. removeSelf()
  30. }
  31. binding.tvCancel.setOnClickListener {
  32. onDialogClickListener?.onCancel()
  33. removeSelf()
  34. }
  35. binding.tvTitle.text = title
  36. if (cancelStr.isNotEmpty()) {
  37. binding.tvCancel.text = cancelStr
  38. }
  39. if (confirmStr.isNotEmpty()) {
  40. binding.tvYes.text = confirmStr
  41. }
  42. //只显示确认按钮
  43. if (showConfirm && !showCancel) {
  44. binding.tvCancel.visibility = View.GONE;
  45. binding.tvYes.visibility = View.VISIBLE;
  46. val layoutParams = binding.tvYes.layoutParams as RelativeLayout.LayoutParams;
  47. layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL)
  48. binding.tvCancel.layoutParams = layoutParams
  49. }
  50. if (!showConfirm && showCancel) {
  51. binding.tvYes.visibility = View.GONE;
  52. binding.tvCancel.visibility = View.VISIBLE;
  53. val layoutParams = binding.tvCancel.layoutParams as RelativeLayout.LayoutParams;
  54. layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL)
  55. binding.tvCancel.layoutParams = layoutParams
  56. }
  57. //监听旋钮点击回调
  58. setOnKeyFun(object : onKeyFun {
  59. override fun onType() {
  60. if (binding.tvYes.visibility == View.VISIBLE) {
  61. binding.tvYes.performClick() //默认点击控件
  62. } else if (binding.tvCancel.visibility == View.VISIBLE) {
  63. binding.tvCancel.performClick()
  64. }
  65. }
  66. })
  67. return binding.root
  68. }
  69. fun onConfirmClick() {
  70. binding.tvYes.callOnClick()
  71. }
  72. interface OnDialogClickListener {
  73. fun onConfirm()
  74. fun onCancel()
  75. }
  76. }