美文网首页
Dialog 防止物理键关闭 和 点击外部点击关闭

Dialog 防止物理键关闭 和 点击外部点击关闭

作者: nade_s | 来源:发表于2020-01-17 11:39 被阅读0次

    平时工作中,dialog是一种经常使用的控件。物理返回键和点击外部关闭,适用于轻提示类,设计者不关心这种情况的交互,类似于通知的使用情景。还有一种情况,必须用户知晓的和操作的dialog.
    现在有两种情况,一是,点击外部不可关闭,二是,点击物件键返回不关闭。

    final Dialog dialog = new Dialog(context, com.nade.commenlib.R.style.MyDialogTheme);
    View view = View.inflate(context, R.layout.window_privacy_layout,null);
    dialog.setContentView(view);
    
    view.findViewById(R.id.app_quitbt).setOnClickListener(view1 -> {
        AppManager.getAppManager().AppExit(context);
        dialog.dismiss();
    });
    view.findViewById(R.id.app_agreebt).setOnClickListener(view1 -> {
        showLoginwindow(context,lisenter);
        dialog.dismiss();
    });
    
    dialog.setCancelable(false);
    Window window = dialog.getWindow();
    if (window != null){
        window.setGravity(Gravity.CENTER);
        window.setLayout(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
    }
    dialog.show();
    

    这是基本使用。
    一 点击外部不关闭:

    dialog.setCanceledOnTouchOutside(false);
    

    二 点击返回键 dialog不关闭:

    1、监听返回键动作,进行处理

    dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
        @Override
        public boolean onKey(DialogInterface dialogInterface, int i, KeyEvent keyEvent) {
            if (i == keyEvent.KEYCODE_BACK) {
                return true;
            }
            return false;
        }
    });
    
    
    

    2、设置dialog 不可关闭;
    dialog.setCancelable(false);

    如此就可以达到目的了;

    相关文章

      网友评论

          本文标题:Dialog 防止物理键关闭 和 点击外部点击关闭

          本文链接:https://www.haomeiwen.com/subject/vzsczctx.html