studio softinputmode soft how hidekeyboard force edittext close android android-tabhost android-softkeyboard

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.