ventana studio personalizado emergente ejemplo edittext dialogo custom cuadro con android android-alertdialog

studio - Android 5.x: ¿Por qué Dialog.Builder corta el texto?



popup android studio (1)

¿Has intentado usar Dialog en su lugar?

final Dialog dialog = new Dialog(context); dialog.setContentView(R.layout.custom); dialog.setTitle("Title..."); // set the custom dialog components - text, image and button TextView text = (TextView) dialog.findViewById(R.id.text); text.setText("Android custom dialog example!"); // make 3 buttons instead of one Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK); // if button is clicked, close the custom dialog dialogButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //do something } }); dialog.show();

recomendación: utilizar diseño lineal para el diálogo.

Tengo un problema con Dialog.Builder , donde se cortan los botones. ¿Cómo puedo resolver esto o es un problema para los dispositivos Motorola?

  • Acortar el texto no es una solución.
  • Espero el mismo comportamiento como la captura de pantalla de S5, los botones son demasiado largos -> Los botones están uno debajo del otro

Dispositivo: Motorola Moto G / OS: Android 5.0.2

Dispositivo: Galaxy S5 / OS: Android 5.0.2

Aquí está el código y el tema para mostrar el diálogo

public void showDialog(final String title, final String message, final OnClickListener onClickPositive, final OnClickListener onCLickNegative, final String positiveButton, final String negativeButton, final boolean cancelable) { if (!isFinishing()) { runOnUiThread(new Runnable() { @Override public void run() { if (dialog != null && dialog.isShowing()) { dialog.cancel(); } Builder builder; if (android.os.Build.VERSION.SDK_INT >= 14) { builder = new AlertDialog.Builder(new ContextThemeWrapper( MyActivity.this, android.R.style.Theme_DeviceDefault_Light_Dialog)); } else { builder = new Builder(MyActivity.this); } if (title != null) { builder.setTitle(title); } if (message != null) { builder.setMessage(message); } if (positiveButton != null) { builder.setPositiveButton(positiveButton, onClickPositive); } if (negativeButton != null) { builder.setNegativeButton(negativeButton, onCLickNegative); } builder.setCancelable(cancelable); dialog = builder.show(); colorizeDialog(dialog); } }); } } //theme-xml <style name="Theme.DeviceDefault.Light.Dialog" parent="Theme.Holo.Light.Dialog" > <item name="android:windowTitleStyle">@android:style/DialogWindowTitle.DeviceDefault.Light</item> <item name="android:windowAnimationStyle">@android:style/Animation.DeviceDefault.Dialog</item> <item name="android:buttonBarStyle">@android:style/DeviceDefault.Light.ButtonBar.AlertDialog</item> <item name="borderlessButtonStyle">@android:style/Widget.DeviceDefault.Light.Button.Borderless.Small</item> <item name="textAppearance">@android:style/TextAppearance.DeviceDefault.Light</item> <item name="textAppearanceInverse">@android:style/TextAppearance.DeviceDefault.Light.Inverse</item> </style>

########################

ACTUALIZAR EDITAR

Parece que el comportamiento no es el mismo en todos los dispositivos. Tenemos un segundo problema, con la adición del botón "neutral". Nuevamente, Galaxy S5 agrega botones uno debajo del otro (de arriba a abajo: positivo, neutral, negativo)

Motorola Moto G (API 5.0.2 / lado izquierdo) muestra un botón neutral en el medio ("Abbrechen rojo") y vuelve a cortar el texto del botón (flecha azul).

Nexus 4 (API 4.3 / lado derecho) muestra el botón neutral en el lado izquierdo, en lugar de en el medio

Parece que tenemos que implementar un diálogo personalizado ...