lmw
2025-04-24 718f31c92e2029d05260810435a2c70cef6e6ce5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package com.sinata.xqmuse.dialog
 
import android.content.DialogInterface
import android.view.Gravity
import android.view.KeyEvent
import androidx.core.os.bundleOf
import androidx.fragment.app.FragmentManager
import cn.sinata.xldutils.utils.showAllowingStateLoss
import com.sinata.xqmuse.R
import kotlinx.android.synthetic.main.dialog_tip_tree.*
import org.jetbrains.anko.support.v4.toast
 
class TreeTipDialog:BaseDialogFragment() {
    override fun setContentView() = R.layout.dialog_tip_tree
 
    override fun setGravity() = Gravity.CENTER
 
    private val title by lazy { arguments?.getString("title") }
    private val msg by lazy { arguments?.getString("msg") }
 
    var onDismissCallback:OnDismissCallback? = null
    override var canceledOnTouchOutside = false
 
    override fun initView() {
        if (msg!=null) //升级弹窗时,语音播完才能关闭弹窗
            tv_ok.isEnabled = false
        tv_ok.setOnClickListener { dismissAllowingStateLoss() }
        if (!title.isNullOrEmpty())
            tv_title.text = title
        if (!msg.isNullOrEmpty())
            tv_msg.text = msg
        dialog?.setOnKeyListener { dialog, keyCode, event ->
            if (keyCode == KeyEvent.KEYCODE_BACK&&event.action == KeyEvent.ACTION_UP&&!tv_ok.isEnabled){
                //语音未播完不可返回
                return@setOnKeyListener true
            }
            return@setOnKeyListener false
        }
    }
 
    fun canDismiss(){
        tv_ok?.isEnabled = true
    }
 
    override fun onDismiss(dialog: DialogInterface) {
        super.onDismiss(dialog)
        onDismissCallback?.onDismiss()
    }
 
    interface OnDismissCallback{
        fun onDismiss()
    }
 
    companion object{
        fun show(fm:FragmentManager,title:String?=null,msg:String?=null):TreeTipDialog{
            val treeTipDialog = TreeTipDialog()
            treeTipDialog.arguments = bundleOf("title" to title,"msg" to msg)
            treeTipDialog.showAllowingStateLoss(fm,"first")
            return treeTipDialog
        }
    }
}