在 onCreateView() 我尝试设置一些属性,但 DialogFragment 在外面点击时仍然消失。
当用户与应用程序的其他部分交互时,我希望 fragment 几乎始终保持不变。
这是在扩展 BottomSheetDialogFragment 的类中:
@Override
public View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
...
// makes background non-interactive
getDialog().getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
// prevents dimming of background
getDialog().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
// no effect?
getDialog().setCanceledOnTouchOutside(false);
this.setCancelable(false);
return view;
}
最佳答案
代码如:
public class MyDialogFragment extends DialogFragment {
...
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle(...)
.setMessage(...)
.setCancelable(false);
...
Dialog dialog = builder.create();
dialog.getWindow();
return dialog;
}
...
}
为我工作。
关于android - 如何使 BottomSheetDialogFragment 非模态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40113502/