【问题标题】:Created a custom layout dialog, but not able to dismiss dialog when clicked outside dialog window创建了一个自定义布局对话框,但在对话框窗口外单击时无法关闭对话框
【发布时间】:2021-06-04 19:15:37
【问题描述】:
        **Please help me out where I have done wrong**
  

单击我的外部区域时,我无法关闭对话框 仅当我按下移动键中的 backpress 时屏幕才会消失。

        Dialog dialog = new Dialog(mContext, android.R.style.Theme_Translucent_NoTitleBar);
        dialog.setContentView(R.layout.dialog_child_product_two);
        WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
        lp.dimAmount = 0.7f; // Dim level. 0.0 - no dim, 1.0 - completely opaque
        dialog.getWindow().setAttributes(lp);
        dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
        dialog.setCancelable(false);
        dialog.setCanceledOnTouchOutside(true);
        
        *// Views inflated in my dialog to perform some actions on keypress*
        Button btnDone = (Button) dialog.findViewById(R.id.txt_done);
       
        btnDone.setOnClickListener(view -> {
            // Do some work here after some action performed
            dialog.dismiss();
        });
        dialog.show();

【问题讨论】:

标签: android android-layout dialog android-styles android-windowmanager


【解决方案1】:

你需要删除

dialog.setCancelable(false);

因为如果您希望在您在对话框区域外单击时关闭对话框,那么当您将可取消属性设置为 false 时,您希望它如何。 link

【讨论】:

    【解决方案2】:
        Dialog dialog = new Dialog(mContext);
    

    我已尝试从此对话框中删除样式 并添加了以下内容:

    dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
    

    或者

    dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
    

    两者都可以正常工作并且能够在外部区域单击时关闭对话框。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-08
      • 2011-09-18
      • 1970-01-01
      相关资源
      最近更新 更多