tipos studio mensaje edittext dialogos dialogo custom crear confirmación con como android fragment dismiss

edittext - mensaje de confirmación android studio



¿Cómo descartar un DialogFragment al presionar fuera del diálogo? (7)

Muchas respuestas aquí, pero la aplicación se bloquea cuando se abre el diálogo. Escribiendo getDialog().setCanceledOnTouchOutside(true); Dentro de onCreateView no funcionó y se estrelló mi aplicación.

(Estoy usando AppCompatActivity como mi BaseActivity y android.app.DialogFragment como mi Fragmento).

Lo que funciona es cualquiera de las dos líneas siguientes:

getDialog (). setCanceledOnTouchOutside (true);

O

this.getDialog (). setCanceledOnTouchOutside (true);

dentro de onActivityCreated like

@Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //getDialog().getWindow().getAttributes().windowAnimations = R.style.DialogAnimationZoom; //getDialog().getWindow().setDimAmount(0.85f); getDialog().setCanceledOnTouchOutside(true);//See here is the code }

Qué no usar:

DialogFragment.getDialog (). SetCanceledOnTouchOutside (false);

arroja el siguiente error

¡Y escribir el código en onCreateView bloquea la aplicación! Por favor, actualice la respuesta si encuentra algo mal.

Estoy utilizando un DialogFragment , y aunque he configurado correctamente una imagen para cerrar (es decir, descartar) el cuadro de diálogo cuando se lo presiona, me cuesta mucho encontrar la manera de descartar el cuadro de diálogo cuando el usuario hace clic en cualquier lugar fuera de él, tal como funciona. Con diálogos normales. Pensé que habría algún tipo de

dialogFragment.setCanceledOnTouchOutside(true);

Llamo, pero no veo eso en la documentación.

¿Es esto posible con DialogFragment ? ¿O estoy buscando en los lugares equivocados? Intenté interceptar eventos táctiles en la actividad ''padre'', pero aparte de no recibir ningún evento táctil, no me pareció correcto.


Recomendaría usar mi solución solo después de probar las soluciones anteriores. He descrito mi solución here . Solo para abreviar, estoy comprobando los límites táctiles de DialogFragment.getView (). Cuando los puntos de contacto están fuera de DialogFragment, estoy descartando el diálogo.


Dialog.SetCanceledOnTouchOutside(true);

Trabajó para mi
Mi código

class dlgRegister : DialogFragment { public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { .... .... } public override void OnActivityCreated(Bundle savedInstanceState) { Dialog.Window.RequestFeature(WindowFeatures.NoTitle); Dialog.SetCanceledOnTouchOutside(true); base.OnActivityCreated(savedInstanceState); Dialog.Window.Attributes.WindowAnimations = Resource.Style.dialog_animation; } }


/** The system calls this only when creating the layout in a dialog. */ @Override public Dialog onCreateDialog(Bundle savedInstanceState) { // The only reason you might override this method when using onCreateView() is // to modify any dialog characteristics. For example, the dialog includes a // title by default, but your custom layout might not need it. So here you can // remove the dialog title, but you must call the superclass to get the Dialog. Dialog dialog = super.onCreateDialog(savedInstanceState); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setCanceledOnTouchOutside(true); return dialog; }


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


DialogFragment.getDialog().setCanceledOnTouchOutside(false);

Fue un error de escritura. Yo tuve el mismo problema. Esto funciona bien para Java y Mono para Android Mono será:

this.getDialog().SetCanceledOnTouchOutside(false);


DialogFragment.getDialog().setCanceledOnTouchOutside(true);

Debe llamarse en onCreateView (como apurv Gupta señaló).