Nada funcionó para mí, excepto adjustPan
según la documentación
ventana principal de la actividad no cambia de tamaño para dar cabida a el teclado suave. Más bien, el contenido de la ventana se panoramiza automáticamente para que el enfoque actual nunca se oculte por el teclado y los usuarios siempre pueden ver lo que escriben. En general, esto es menos conveniente que cambiar el tamaño, ya que el usuario puede necesitar cerrar el teclado virtual para acceder e interactuar con las partes oscuras de la ventana.
Así que simplemente utilizarlo en su onCreate() o el método como onCreateView():
getDialog().getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
O simplemente android:windowSoftInputMode="adjustPan"
en el manifiesto para el Activiry en el que estamos jugando con diálogos
y use android:windowSoftInputMode="adjustResize|stateHidden"
en cada texto de edición que ayudará al usuario a navegar al siguiente cuadro de texto fácilmente.
Punto a recordar
Nunca use MATCH_PARENT para hacer la pantalla de diálogo como adjustPan
no funcionará aquí. Si alguien quiere hacer que el diálogo encaje en la pantalla, solo use puntos hasta 0.96 (no más que esto) para la altura, de modo que el teclado alcance correctamente el texto de edición. Hice como a continuación:
@Override
public void onStart()
{
super.onStart();
Dialog dialog = getDialog();
if (dialog != null)
{
//int height = ViewGroup.LayoutParams.MATCH_PARENT;
int width = ViewGroup.LayoutParams.MATCH_PARENT;
Display display = getActivity().getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
//int width = (int)(size.x * 0.96);
int h = (int)(size.y * 0.96);
dialog.getWindow().setLayout(width, h);
}
}
Mira, si voy a utilizar la altura total (MATCH_PARENT) y luego se soft_keyboard squize el diálogo. Pero si voy a usar puntos para la altura (aquí 0.96 que está casi cerca de match_parent), entonces funcionará correctamente.
Espero que ayude a alguien :)
La última línea me funciona, idealmente supongo que esa era la pregunta aquí y esta es la respuesta correcta. La respuesta seleccionada es más una sugerencia de cambio de diseño que una respuesta correcta. +1 para la respuesta –
¡Hola, nmr, la última línea también me ha funcionado! Gracias. – Luke47
si tiene un estilo personalizado, también puede convertirlo en un elemento de la definición de estilo '' – ChristophK