package com.igo.user.dialog import android.content.DialogInterface import android.os.Bundle import android.view.Gravity import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx.fragment.app.DialogFragment import cn.sinata.xldutils.gone import cn.sinata.xldutils.invisible import cn.sinata.xldutils.utils.screenWidth import com.igo.user.R import org.jetbrains.anko.support.v4.find import org.jetbrains.anko.wrapContent class TipDialog: DialogFragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? = inflater.inflate(R.layout.dialog_tip,container,false) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setStyle(STYLE_NO_FRAME,R.style.FadeDialog) } override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) dialog?.window?.setLayout((screenWidth()*0.85).toInt(), wrapContent) dialog?.window?.setGravity(Gravity.CENTER) dialog?.setCanceledOnTouchOutside(false) } private val isAlert by lazy { //是否仅显示提示信息 arguments?.getBoolean("isAlert",false)?:false } private val isNotifyRed by lazy { //是否醒目提醒 arguments?.getBoolean("isNotifyRed",false)?:false } private val msg by lazy { //提示信息 arguments?.getString("msg")?:"是否确定取消订单?" } private val ok by lazy { //确定文字 arguments?.getString("ok")?:getString(R.string.确定) } private val noTitle by lazy { //标题 arguments?.getBoolean("noTitle")?:false } private val cancel by lazy { //取消文字 arguments?.getString("cancel")?:getString(R.string.取消) } private var isCancelDismiss = false //点击取消关闭,不走onDismiss回调 private val tv_title by lazy { find(R.id.tv_title) } private val tv_cancel by lazy { find(R.id.tv_cancel) } private val tv_msg by lazy { find(R.id.tv_msg) } private val tv_ok by lazy { find(R.id.tv_ok) } private val iv_close by lazy { find(R.id.iv_close) } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) if (isAlert){ tv_cancel.gone() } if (isNotifyRed){ tv_title.text = getString(R.string.提醒叹号) tv_title.setCompoundDrawablesRelativeWithIntrinsicBounds(R.mipmap.notice_red,0,0,0) iv_close.invisible() } if (noTitle) tv_title.text = "" tv_msg.gravity = if (msg.length>12) Gravity.START else Gravity.CENTER tv_msg.text = msg tv_ok.text = ok tv_cancel.text = cancel tv_cancel.setOnClickListener { callback?.onCancel() isCancelDismiss = true dismiss() } tv_ok.setOnClickListener { callback?.onOk() dismiss() } iv_close.setOnClickListener { dismiss() } } override fun onDismiss(dialog: DialogInterface) { super.onDismiss(dialog) if (!isCancelDismiss&&!isAlert) dismissCallbak?.onDismiss() else if (isAlert) dismissCallbak?.onDismiss() } interface OnClickCallback{ fun onOk() fun onCancel() } interface OnDismiss{ fun onDismiss() } private var callback: OnClickCallback? = null private var dismissCallbak: OnDismiss? = null fun setCallback(callback: OnClickCallback){ this.callback = callback } fun setDismissCallback(callback: OnDismiss){ this.dismissCallbak = callback } }