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


Cómo alinear el centro de diálogo personalizado en android?

Estoy trabajando en la aplicación donde quería mostrar el diálogo de tamaño de pantalla. Así que utilicé código abajo. Tengo la solución a través de aquí ¿El mensaje de alerta no se muestra en el cuadro de diálogo de alerta?

AlertDialog.Builder builder = new AlertDialog.Builder(this); TextView title = new TextView(this); title.setText("DM2"); title.setBackgroundColor(Color.DKGRAY); title.setPadding(10, 10, 10, 10); title.setGravity(Gravity.CENTER); title.setTextColor(Color.WHITE); title.setTextSize(20); TextView text = new TextView(this); text.setText("Hello This text"); text.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); text.setTextSize(20); text.setGravity(Gravity.CENTER); //Creates a linearlayout layout and sets it with initial params LinearLayout ll = new LinearLayout(this); ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); ll.setGravity(Gravity.CENTER); ll.addView(text); builder.setCustomTitle(title); builder.setPositiveButton( "Ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.dismiss(); } }); Dialog d = builder.setView(ll).create(); //Fills up the entire Screen WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); lp.copyFrom(d.getWindow().getAttributes()); lp.width = WindowManager.LayoutParams.FILL_PARENT; lp.height = WindowManager.LayoutParams.FILL_PARENT; d.show(); d.getWindow().setAttributes(lp); 

Pero quiero que el diálogo aparezca en el centro alineado. Ahora se muestra en la parte superior de la ventana. He intentado con lp.garvity = Gravity.center, pero no funcionó. Y Si la orientación del dispositivo cambia, necesito pulsar el botón ok más tiempo para cerrar el diálogo. ¿Cómo arreglar esto?

Gracias de antemano Pushpa

5 Solutions collect form web for “Cómo alinear el centro de diálogo personalizado en android?”

Soy un poco tarde, pero mejor tarde entonces nunca 🙂 usted puede utilizar el código abajo: (Vi también aquí )

 dialog = new Dialog(activity, android.R.style.Theme_Translucent_NoTitleBar); dialog.setContentView(R.layout.activity_upload_photo_dialog); Window window = dialog.getWindow(); window.setLayout(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); window.setGravity(Gravity.CENTER); //The below code is EXTRA - to dim the parent view by 70% LayoutParams lp = window.getAttributes(); lp.dimAmount = 0.7f; lp.flags = LayoutParams.FLAG_DIM_BEHIND; dialog.getWindow().setAttributes(lp); //Show the dialog dialog.show(); 

Espero haber ayudado …

Esto funciona para mí:

 lp.height = WindowManager.LayoutParams.WRAP_CONTENT; 

Tal vez esto funciona:

 WindowManager.LayoutParams WMLP = dialog.getWindow().getAttributes(); WMLP.gravity = Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL dialog.getWindow().setAttributes(WMLP); 

Trate de usar android: layout_gravity = "center" en lugar de android: gravity = "center" … Puede ser útil para usted ..

 android:layout_gravity="center" 

o

Puedes probar esto

  <activity android:theme="@android:style/Theme.Dialog" android:name=".Splash"> </activity> 

Escriba el código xml completo y realice Activty y agregue un atributo en AndroidManifest.xml, al registrar su actividad en AndroidManifest.xml

Nota : – Esto es para " diseño personalizado " … 🙂

Yo estaba luchando con el mismo, y después de luchar por horas llegué a este resultado

Anteriormente estaba creando el dilaoge como este: –

  final Dialog dialog = new Dialog(PopupforeditActivity.this); 

Después de agregar el estilo "No titleBar" comenzó a buscar el diseño de la manera que había creado.

Para esto tienes que crear el diseño con params "fillParent" y crear el dialoge como este

  final Dialog dialog = new Dialog(PopupforeditActivity.this,android.R.style.Theme_Translucent_NoTitleBar_Fullscreen); dialog.setContentView(R.layout.dialog_billing_cart); dialog.setCancelable(true); 

Lo anterior es parte de codificación

Usted en la parte de la Layout puso su disposición entera en RelativeLayout

Y dar su propiedad de diseño android:layout_centerInParent="true"

Ex:-

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@android:color/transparent" > <!--Your Layout--> <ScrollView android:id="@+id/scrlView_FormHolder" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_marginBottom="10dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" > </ScrollView> </RelativeLayout> 

Y si no quieres perder "title" Puedes tener eso en tu diseño personalizado como TextView.

Espero que ayude .. Como me ayudó 🙂

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