selecciona quitar ocultar numero navegacion modo mejorada interruptores guia configuración configuracion como barra asistente accesibilidad android android-softkeyboard

android - quitar - Cómo evitar que una barra de navegación inferior se empuje hacia arriba en el teclado mostrado



ocultar barra de navegacion android (4)

¿Cómo puedo crear un pie de página adhesivo que no se moverá hacia arriba con la vista cuando el teclado de teclas programables aparezca?

A continuación se muestra un ejemplo de imagen de mi configuración actual y lo que quiero lograr. Tengo una vista de desplazamiento que contiene el contenido de mi página y una distribución lineal que está alineada con el fondo principal que actúa como una barra de navegación

El problema es que cuando el teclado se abre, aumenta mi vista completa, incluida la sección de navegación inferior. No quiero deshabilitar el aumento automático de la vista (configurando android:windowSoftInputMode="adjustPan" ), sino que excluyo que un solo elemento no sea empujado hacia arriba , mi barra de navegación inferior.

He probado la corrección windowSoftInputMode pero oculta el contenido de mi página detrás del teclado. ¿Hay alguna forma de que continúe subiendo la vista de desplazamiento pero no la barra de navegación inferior? Mi otra opción era configurar la visibility:gone utilizar el teclado hacia arriba y luego volver a configurarlo en el teclado hacia abajo, pero eso parece demasiado complicado y no siempre es confiable según lo que leí.

Si alguien tiene algún ejemplo o sugerencia, soy todo oídos. Gracias.


Encontré un problema bastante similar con las diferencias de que: a) al principio no estaba usando un ScrollView yb) el elemento que no quería mover era un simple TextView.

Aquí está la respuesta que encontré: click

Lo que hice para arreglarlo:

  • Use adjustResize
  • Use 4 diseños: uno circundante, 1 para el encabezado, ScrollView y 1 para su "navegación inferior"
  • No solo confíe en android:layout_alignParentBottom="true" , mientras que esto moverá la barra de navegación a la parte inferior de la pantalla, también significa que el teclado puede subirla debido a "adjustResize"
  • Además, use android:layout_height="wrap_content" en combinación con android:layout_below="@id/MyScrollView" (de modo que el diseño ocupará todo el espacio que pueda tener entre ScrollView y la parte inferior de la pantalla) y android:gravity="bottom" para simplemente tener todo en la parte inferior del diseño.
  • También puedes usar android:layout_height="match_parent" lugar de android:layout_alignParentBottom="true" y android:layout_height="wrap_content" pero no lo android:layout_height="wrap_content" completamente de esa manera.
  • Como dije, esto hará que el diseño de la "navegación inferior" use todo el espacio que puede obtener debajo del ScrollView. Si no desea eso, por ejemplo, debido a que su "navegación inferior" tiene un color diferente que no desea que se le muestre demasiado, intente crear un RelativeLayout circundante para la "navegación inferior" y otro diseño vacío que pueda presionar "abajo" nav "hacia abajo. ;)

Intenté muchas soluciones encontradas en SO y solo agregando android: windowSoftInputMode = "adjustNothing" en el manifiesto de la actividad que me funcionó:

<activity android:name=".MainActivity" android:windowSoftInputMode="adjustNothing">

Diseño asociado:

<RelativeLayout ... <android.support.v4.widget.NestedScrollView ... </android.support.v4.widget.NestedScrollView> <android.support.design.widget.BottomNavigationView ... design:menu="@menu/navigation"/> </RelativeLayout>


O agrega esto como atributo XML de la barra de desplazamiento

android: isScrollContainer = "false"

o agregar esto en la etiqueta de la actividad en el manifiesto

android: windowSoftInputMode = "adjustPan"


Simplemente agregue esta línea en su onCreate , cuando esta opción configura la ventana, no se ajusta para un método de entrada mostrado. :

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);