softinputmode - how to close keyboard android studio
¿Hay alguna manera de cambiar el valor de android: windowSoftInputMode desde la clase java? (4)
Quiero que mis pestañas actúen para tener diferentes propiedades windowSoftInputMode
para cada pestaña. ¿Cómo acceder a esta propiedad desde la clase java cuando todo el manejo de su pestaña se realiza desde una sola actividad?
¿Hay alguna forma de acceder a esta propiedad de manifiesto desde el código de Java?
De acuerdo con el comentario de Prasham , hice esto y me salvó la vida, ¡gracias a él! Los EditText
y SoftWindowInput
tienen muchos SoftWindowInput
cuando tienes un diseño con ScrollView
y lo estás llenando dinámicamente.
Ya que había revisado este post pero había seguido leyendo otras respuestas / comentarios (como el de Prashan), decidí escribirlo en un nuevo post.
Debajo del código que usé con mi ScrollView
:
Activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
Mi objetivo es utilizar dos modos diferentes para las pestañas. Los modos son SOFT_INPUT_ADJUST_RESIZE
y SOFT_INPUT_ADJUST_NOTHING
.
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
La línea de código anterior simplemente no funciona por sí misma. La aplicación siempre se comporta en un estado ADJUST_NOTHING
. Sin embargo, si windowSoftInputMode="adjustResize"
se inserta en la etiqueta <activity>
en el archivo AndroidManifest.xml, la ventana de la aplicación se redimensiona de manera predeterminada. Adicionalmente, cuando llame a la línea siguiente.
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
se comportará como se espera y nada se redimensiona.
PS mejora a la respuesta
Puedes usar el siguiente código programáticamente
android.view.inputmethod.InputMethodManager imm = (android.view.inputmethod.InputMethodManager) context
.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
Gracias Deepak
Use lo siguiente para cambiar el softInputMode para una actividad.
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
Use lo siguiente para cambiar el tipo de entrada de software para un texto de edición.
mEditText.setImeOptions(EditorInfo.IME_ACTION_DONE);
Gracias a @Eliezer por la corrección.