1
Dans onCreateView(), j'ai essayé de définir certaines propriétés, mais le dialogue DialogFragment continue à être tapé à l'extérieur.Comment faire un BottomSheetDialogFragment non-modal?
Je voudrais que le fragment reste presque tout le temps pendant que l'utilisateur interagit avec d'autres parties de l'application.
Ceci est une classe qui étend 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;
}
Essayez 'setCancelable (false)'. –
Désolé, c'était dans mon code original, mais cela n'a eu aucun effet. D'autres suggestions ou documents pouvant expliquer cela? – dmonopoly
Pourquoi 'this.setCancelable (false);' not 'getDialog(). SetCancelable (false);' (ou vice versa tous les appels sur l'objet 'this')? –