package com.dollearn.student.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 androidx.fragment.app.DialogFragment
|
import cn.sinata.xldutils.gone
|
import cn.sinata.xldutils.utils.screenWidth
|
import cn.sinata.xldutils.visible
|
import com.dollearn.student.R
|
import kotlinx.android.synthetic.main.dialog_tip.*
|
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.4).toInt(), wrapContent)
|
dialog?.window?.setGravity(Gravity.CENTER)
|
dialog?.setCanceledOnTouchOutside(!isAlert)
|
}
|
|
private val isAlert by lazy { //是否仅显示提示信息
|
arguments?.getBoolean("isAlert",false)?:false
|
}
|
private val msg by lazy { //提示信息
|
arguments?.getCharSequence("msg")?:"是否确定取消订单?"
|
}
|
private val ok by lazy { //确定文字
|
arguments?.getString("ok")?:"确认"
|
}
|
private val cancel by lazy { //取消文字
|
arguments?.getString("cancel")?:"关闭"
|
}
|
private var isCancelDismiss = false //点击取消关闭,不走onDismiss回调
|
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
super.onViewCreated(view, savedInstanceState)
|
|
if (isAlert){
|
tv_cancel.gone()
|
tv_ok.gone()
|
tv_alert.visible()
|
tv_alert.text = ok
|
}
|
|
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()
|
}
|
|
tv_alert.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
|
}
|
}
|