Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo centralizar el diseño dentro de Android Dialog?

Estoy intentando crear un diálogo de encargo, y tengo su contenido centrado, pero está terminando siempre para arriba alineado a la izquierda. Aquí está aboutdialog.xml:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:a="http://schemas.android.com/apk/res/android" a:orientation="vertical" a:id="@+id/AboutDialogLayout" a:layout_width="fill_parent" a:layout_height="fill_parent" a:layout_gravity="center_horizontal" a:gravity="center_horizontal"> <ImageView a:id="@+id/imageView1" a:src="@drawable/pricebook" a:layout_height="wrap_content" a:layout_width="wrap_content"/> <TextView a:layout_height="wrap_content" a:textAppearance="?android:attr/textAppearanceLarge" a:id="@+id/textView1" a:text="Price Book" a:layout_width="wrap_content"/> <TextView a:layout_height="wrap_content" a:id="@+id/textView2" a:layout_width="wrap_content" a:text="foo"/> </LinearLayout> 

Y mi código (relevante):

 Dialog d = new Dialog(this); d.setContentView(R.layout.aboutdialog); d.setTitle(R.string.app_name); 

¿Que me estoy perdiendo aqui? Gracias por la ayuda.

Imagen: Captura de pantalla del problema Dialog

  • EditText se expande demasiado lento dentro de AlertDialog en android
  • Obtener eventos táctiles en un diálogo que se muestra mientras el dedo ya estaba tocando la pantalla
  • En Android, se muestra cómo detectar un diálogo del sistema (opciones de energía, aplicaciones recientes, batería baja ...).
  • Diálogo de alerta simple de Android
  • Cuadro de diálogo personalizado en pantalla completa?
  • GetSupportFragmentManager no compila en DialogFragment
  • ¿Cuál es la diferencia entre `DialogInterface.dismiss ()` y `DialogInterface.cancel ()`?
  • Cómo hacer que un cuadro de diálogo de PreferenciaActividad abra una ventana de diálogo para establecer una preferencia personalizada
  • 4 Solutions collect form web for “Cómo centralizar el diseño dentro de Android Dialog?”

    Tratar de editar a esto: a:layout_gravity="center_horizontal|center_vertical"
    O
    fill_parent Relative_Layout y alinee el diseño lineal con el centro de parent con fill_parent para Relative wrap_content para Linear.

    Aunque se trabaja conmigo en el centro

    Modifique el ViewGroup (FrameLayout) del cuadro de diálogo que contiene su diseño de contenido. Utilizo el método estático y lo invoco dentro onActivityCreated () en DialogFragments:

     /** * Center dialog content inside available space * @param dialog */ public static void centerDialogContent(Dialog dialog) { ViewGroup decorView = (ViewGroup) dialog.getWindow().getDecorView(); View content = decorView.getChildAt(0); FrameLayout.LayoutParams contentParams = (FrameLayout.LayoutParams)content.getLayoutParams(); contentParams.gravity = Gravity.CENTER; content.setLayoutParams(contentParams); } 

    Estás haciendo layout_gravity lo cual es bueno, pero como lo haces al outmost layout, no puede posicionarse en relación con lo que está a su alrededor.

    Creo que envolver el diseño anterior dentro de otro diseño lo haría

    ¿Puedes intentar cambiar el layout_gravity de LinearLayout a la gravedad? Vea la diferencia aquí explicada: gravedad y layout_gravity en Android

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.