【问题标题】:Custom Dialog is being dismissed when I click outside of it当我在自定义对话框之外单击时,它被关闭
【发布时间】:2012-06-09 00:28:43
【问题描述】:

我有一个自定义对话框,当您在对话框外部单击时会关闭,这是我不想要的。拥有dialog.setCanceledOnTouchOutside(false); 并不能解决问题。我做错了什么?

dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setCanceledOnTouchOutside(false);
dialog.setContentView(R.layout.twitter_dialog);
// set up edit text and other widgets
dialog.getWindow().setLayout(450, 280);
dialog.show();

编辑:我从另一个具有 setCanceledOnTouchOutside(true) 的对话框调用此对话框。在调用此对话框之前,前一个对话框被关闭。

【问题讨论】:

  • 删除此行并告诉我们会发生什么:dialog.getWindow().setLayout(450, 280);

标签: android dialog


【解决方案1】:

你可以使用 getDialog().setCanceledOnTouchOutside(false);

【讨论】:

    【解决方案2】:

    这对我有用:

    dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
    

    【讨论】:

      【解决方案3】:

      我能够通过使用 AlertDialog 解决我的问题

      【讨论】:

      • 对我来说,如果您在其区域之外触摸它,AlertDialog 也可以被关闭。
      【解决方案4】:

      请查看示例代码

      EditDialog newDialog = new EditDialog();
      newDialog .setCancelable(false);   ///This will prevent closing the dialog on back button press/ touch outside
      newDialog .show(getSupportFragmentManager(),"dialog");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-08
        • 2016-07-16
        • 2016-01-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多