HarmonyOS鸿蒙Next中自定义Dialog点击返回键也不可取消

HarmonyOS鸿蒙Next中自定义Dialog点击返回键也不可取消 你好,请问鸿蒙这边有类似于android那边的Dialog.setCancelable方法吗,表示点击返回,以及系统手势返回都不可取消,主要用于场景 比如app强制更新,如果有大版本强制更新,需要app强制更新才能使用。

3 回复

请尝试下 onWillDismiss 属性 是否满足您的需求 请参看文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-methods-custom-dialog-box-V5# 示例1

更多关于HarmonyOS鸿蒙Next中自定义Dialog点击返回键也不可取消的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,如果您希望自定义的Dialog在点击返回键时不可取消,可以通过以下方式实现。首先,在创建Dialog时,设置setCancelable(false)属性,这样Dialog将不会在点击返回键时自动关闭。其次,如果您需要进一步控制Dialog的行为,可以重写onKeyDown方法,在该方法中处理返回键的逻辑,确保返回键按下时不会关闭Dialog。

例如,在自定义Dialog类中,您可以这样实现:

class CustomDialog(context: Context) : Dialog(context) {
    init {
        setCancelable(false)
    }

    override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            // 处理返回键的逻辑
            return true // 返回true表示已处理该事件,不会关闭Dialog
        }
        return super.onKeyDown(keyCode, event)
    }
}

通过这种方式,您可以确保自定义Dialog在点击返回键时不会被取消。

在HarmonyOS鸿蒙Next中,如果你想自定义一个Dialog,并且希望它在点击返回键时不可取消,可以通过以下步骤实现:

  1. 创建自定义Dialog类:继承Dialog类,并重写onKeyDown方法。
  2. 禁用返回键关闭:在onKeyDown方法中,拦截返回键事件(KeyEvent.KEYCODE_BACK),并返回true,表示事件已处理,不关闭Dialog。

示例代码:

public class CustomDialog extends Dialog {
    public CustomDialog(Context context) {
        super(context);
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            return true; // 拦截返回键,不关闭Dialog
        }
        return super.onKeyDown(keyCode, event);
    }
}

这样,Dialog在点击返回键时将不会关闭。

回到顶部