在外面按下时关闭对话框片段

Posted

技术标签:

【中文标题】在外面按下时关闭对话框片段【英文标题】:Dismiss Dialog Fragment when pressed outside 【发布时间】:2013-08-13 05:16:29 【问题描述】:

我使用 Dialog Fragment 我扩展它

public class DocumentLibrarySelectionFragment extends DialogFragment 

我不确定当用户在它外面按下时如何关闭这个对话框(我在我的活动中显示这个对话框)。我浏览了其他相关问题,但找不到完整的答案,例如这里的How to dismiss a DialogFragment when pressing outside the dialog?,在第一个答案中添加这行代码的位置在哪里?谢谢。

【问题讨论】:

【参考方案1】:

onCreateView,可以添加DialogFragment.getDialog().setCanceledOnTouchOutside(true);

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    ...
    getDialog().setCanceledOnTouchOutside(true);
    ... 

【讨论】:

在我的 DialogFragment 实现中添加这个方法还是?我的片段实现中只有 @Override public Dialog onCreateDialog(Bundle savedInstanceState) 方法? 正如 Blackbelt 所说 (***.com/a/16480564/6444297),而不是 'getDialog().setCancelable(false);'你必须直接使用'setCancelable(false);'

以上是关于在外面按下时关闭对话框片段的主要内容,如果未能解决你的问题,请参考以下文章

单击对话框关闭按钮时正确中止线程

在片段活动中显示自定义对话框

jQuery UI - 在外部单击时关闭对话框

关闭从另一个对话框片段启动的对话框片段会导致非法状态异常

将项目从对话框添加到 ListView

日期选择器对话框在片段中不起作用[关闭]