Tengo algunos elementos en un RelativeView con el conjunto de atributos de alineación inferior, cuando aparece el teclado virtual, los elementos están ocultos por el teclado virtual.
Me gustaría que se muevan hacia arriba para que, si hay suficiente espacio en la pantalla, se muestren sobre el teclado, o para que la sección sobre el teclado se pueda desplazar para que el usuario pueda ver los elementos.
¿Alguna idea sobre cómo abordar esto?
Respuestas:
Sí, consulte este artículo en el sitio de desarrolladores de Android que describe cómo el marco maneja la aparición del teclado virtual.
El
android:windowSoftInputMode
atributo se puede usar para especificar lo que sucede en función de cada actividad: si se cambia el tamaño del diseño o si se desplaza, etc.fuente
También puede usar este código en el
onCreate()
método:fuente
Agregue AndroidManifest.xml para su actividad:
fuente
Realice cambios en la actividad de su archivo de manifiesto como
O
Realice cambios en su
onCreate()
método en la clase de actividad comofuente
problema similar que enfrentaba con mi diseño, que consiste en una vista de desplazamiento en el interior. Cada vez que intento seleccionar texto en EditText, la barra de acción Copiar / Cortar / Pegar se mueve hacia arriba con el siguiente código, por lo que no cambia el tamaño del diseño
Modificándolo como a continuación
1) AndroidManifest.xml
2) archivo style.xml, en estilo de actividad
Funcionó.!!!!!!!!!!!!
fuente
En AndroidManifest.xml, no olvide configurar:
y para RelativeLayout dentro de ScrollView, establezca:
Estara bien
fuente
para la actividad en su inserción de método de creación debajo de la línea
y para fragmentos en su método onCreate
fuente
Hay 3 pasos a seguir para desplazar la pantalla hacia arriba.
PD: No olvide agregar android: layout_gravity = "center" en el diseño relativo principal.
fuente
Probé un método de Diego Ramírez, funciona. En AndroidManifest:
En activity_main.xml:
fuente
Agregue NestedScrollView alrededor del diseño que desea desplazar, esto funcionará perfectamente
fuente
He encontrado una solución a mis problemas que es bastante similar a la tuya.
En primer lugar, solo tengo un LinearLayout con 2 elementos, un ImageView y un LinearLayout que contiene 2 EditText y un Button, por lo que necesitaba mantenerlos separados en pantalla completa sin teclado, y cuando aparezca el teclado deberían verse más cerca.
Así que agregué la vista entre ellos con el atributo de altura en 0dp y el peso 1, lo que me permitió mantener mis vistas separadas una de la otra. y cuando aparece el teclado, ya que no tienen una altura fija, simplemente cambian el tamaño y mantienen el aspecto.
Voila! El tamaño del diseño y la distancia entre mis vistas es la misma cuando el teclado está presente o no.
fuente
ConstraintLayout
y fijando una sección superior a la parte superior y una sección inferior a la inferior. Cuando se abre el teclado, naturalmente cambiará de tamaño apretando el espacio en el medio (si lo usaadjustResize
)fuente
Aquí está el código de manifiesto completo
fuente
si está en fragmentos, entonces debe agregar el código siguiente a su onCreate en su actividad, me resuelve el problema
fuente
En su archivo de manifiesto agregue la línea a continuación. Funcionará
fuente
Acabo de agregar la siguiente línea al diseño de nivel superior y todo funcionó:
fuente
Bien, esto es muy tarde, sin embargo, he descubierto que si agrega una Vista de lista debajo del texto de edición, el teclado moverá todos los diseños bajo ese texto de edición sin mover el Vista de lista
Esta es la única solución que funcionó para mí.
fuente
Ni un solo consejo resuelve mi problema. Ajustar panorámica es casi como el trabajo Ajustar Cambiar tamaño . Si configuro Ajustar nada más que el diseño, no se mueve hacia arriba, pero oculta mi texto de edición de la parte inferior que estoy escribiendo actualmente. Entonces, después de 24 horas de búsqueda continua, encontré esta fuente y resolvió mi problema.
fuente
Puede que sea tarde, pero quiero agregar algunas cosas. En Android Studio Versión 4.0.1 y Gradle Versión 6.1.1,
windowSoftInputMode
no funcionará como se espera si agrega los siguientes indicadores en su Actividad:Después de perder mucho tiempo, he encontrado ese truco. Para que
adjustResize
oAdjustPan
cualquier atributo dewindowSoftInputMode
funcione correctamente, debe eliminarlo de su actividad.fuente