He buscado por todas las respuestas sobre el despido de un diálogo onTouchOutside, sin embargo, estoy usando DialogFragment en mi solicitud. ¿Cómo puedo lograr despedir al DialogFragment cuando el usuario hace clic fuera de la región DialogFragment?despedir DialogFragment (no de diálogo) onTouchOutside
He examinado diálogo 's source code para setCanceledOnTouchOutside
public void setCanceledOnTouchOutside(boolean cancel) {
if (cancel && !mCancelable) {
mCancelable = true;
}
mCanceledOnTouchOutside = cancel;
}
Hay otra función que puede ser interesante que es isOutOfBounds
private boolean isOutOfBounds(MotionEvent event) {
final int x = (int) event.getX();
final int y = (int) event.getY();
final int slop = ViewConfiguration.get(mContext).getScaledWindowTouchSlop();
final View decorView = getWindow().getDecorView();
return (x < -slop) || (y < -slop)
|| (x > (decorView.getWidth()+slop))
|| (y > (decorView.getHeight()+slop));
}
pero no pude averiguar una forma de hacer uso de estos para DialogFragment
Además de estos que han examinado el estado de la aplicación con hierarchyviewer y como yo lo entiendo, sólo puede ver la región del diálogo y no la parte outsied de ella (me refiero a la parte restante de la pantalla después del DialogFragment).
puede sugerir una forma de implementar esta setCanceledOnTouchOutside para DialogFragment y si es posible con un código de ejemplo?
'DialogFragment' no tiene un método llamado' setCanceledOnTouchOutside() '' Dialog'. Por favor lea la pregunta cuidadosamente. –
La respuesta anterior no implica que tenga. 'DialogFragment' tiene el método' getDialog() 'que devuelve' Dialog' que tiene el método 'setCanceledOnTouchOutside()'. Por favor, lea la respuesta cuidadosamente. –
Oh hombre ... por favor sé más descriptivo ... Si puedes editar la respuesta, puedo votarla. Lo he llamado dentro de 'onCreateView()' de una implementación personalizada 'DialogFragment' y funciona bien. Gracias. –