Quiero que mis pestañas tengan windowSoftInputModepropiedades diferentes 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 java?

adjustPanyadjustResizepuedes ir aWindowManager.LayoutParamsclase, puedes encontrar muchas constantes útiles que se pueden usar en elsetSoftInputModemétodogetWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);ya lo probé y realmente funcionaWindow#setSoftInputModesonWindowManager.LayoutParams.SOFT_INPUT_*getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);pero el teclado aún empuja hacia arriba mi FrameLayout, que está por encima de otras vistas. Pero solo eso, otros puntos de vista permanecen en su lugar. Funciona, cuando lo agrego al manifiesto, pero no quiero aplicarlo para toda la actividad.Según el comentario de Prasham , hice esto y me salvó la vida, ¡gracias a él! El modo
EditTextySoftWindowInputtiene bastantes errores cuando tiene un diseño conScrollViewy lo está llenando dinámicamente.Como había leído esta publicación pero seguí leyendo otras respuestas / comentarios (como la de Prashan), decidí escribirla en una nueva publicación.
Debajo del código que usé con mi
ScrollView:Activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);fuente
Mi objetivo es usar dos modos diferentes para pestañas. Los modos son
SOFT_INPUT_ADJUST_RESIZEySOFT_INPUT_ADJUST_NOTHING.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);La línea de código anterior simplemente no funciona por sí sola. La aplicación siempre se comporta en un estado
ADJUST_NOTHING. Sin embargo, siwindowSoftInputMode="adjustResize"se inserta en la<activity>etiqueta del archivo AndroidManifest.xml, la ventana de la aplicación cambia de tamaño de forma predeterminada. Además, cuando llame a la siguiente líneagetWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);se comportará como se esperaba y no se cambiará el tamaño de nada.
PS mejora a la respuesta
fuente
windowSoftInputMode="adjustResize"en el manifiesto ayuda a manejar esta bandera más adelante. Especialmente en un escenario en el que tiene principalmente Fragmentos en Actividad única. Por lo tanto, uno puede seguir cambiando dinámicamente el estado de entrada de la Actividad cambiando programáticamente deSOFT_INPUT_ADJUST_RESIZEnuevo aSOFT_INPUT_ADJUST_NOTHINGbajo demanda. ¡Buena esa!Puede utilizar el siguiente código mediante programación
android.view.inputmethod.InputMethodManager imm = (android.view.inputmethod.InputMethodManager) context .getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);Gracias Deepak
fuente
En Xamarin Android se puede hacer programáticamente así
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.DetailDesign); Window.SetSoftInputMode(SoftInput.AdjustPan); }fuente