From bee2d6cacc7ff3af682897eee1eac4720f5e1b8d Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期六, 08 二月 2025 18:15:37 +0800 Subject: [PATCH] 新增功能开发完成 --- app/src/main/java/com/sinata/xqmuse/dialog/TreeTipDialog.kt | 31 ++++++++++++++++++++++++++++++- 1 files changed, 30 insertions(+), 1 deletions(-) diff --git a/app/src/main/java/com/sinata/xqmuse/dialog/TreeTipDialog.kt b/app/src/main/java/com/sinata/xqmuse/dialog/TreeTipDialog.kt index b410f68..f83f84e 100644 --- a/app/src/main/java/com/sinata/xqmuse/dialog/TreeTipDialog.kt +++ b/app/src/main/java/com/sinata/xqmuse/dialog/TreeTipDialog.kt @@ -1,11 +1,14 @@ 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 @@ -15,19 +18,45 @@ 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){ + 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 } } } \ No newline at end of file -- Gitblit v1.7.1