windowsoftinputmode teclado tapar tapa studio ocultar edittext desplazamiento con barra adjustresize android user-interface android-layout android-keypad

android - tapar - ¿Mover los diseños hacia arriba cuando se muestra el teclado suave?



scrollview android studio (12)

Tengo algunos elementos en una 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?


Agregue AndroidManifest.xml para su actividad:

android:windowSoftInputMode="adjustPan|adjustResize"


Aquí está el código de manifiesto completo

<activity android:name=".activities.MainActivity" android:windowSoftInputMode="adjustResize" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>


En AndroidManifest.xml, no te olvides de configurar:

android:windowSoftInputMode="adjustResize"

y para RelativeLayout dentro de ScrollView, establece:

android:layout_gravity="center" or android:layout_gravity="bottom"

Estara bien


Haga cambios en la actividad de su archivo Manifest como

windowSoftInputMode="adjustResize"

O

Haga cambios en su método onCreate() en la clase de actividad como

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


Hay 3 pasos a seguir para desplazarse por la pantalla.

  1. Escriba en el archivo de manifiesto para su actividad:

android: windowSoftInputMode = "adjustResize"

  1. Agregue la siguiente línea en el método oncreate () de su actividad

getWindow (). setSoftInputMode (WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

  1. Luego, coloque toda su vista en "Scrollview" en un archivo XML como:

<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:background="@drawable/bg" android:layout_height="match_parent" > <RelativeLayout android:layout_width="fill_parent" android:layout_height="match_parent" android:layout_gravity="center" > <TextView /> ......... <TextView /> <EditText > <requestFocus /> </EditText> <Button /> </RelativeLayout> </ScrollView>

PD No te olvides de agregar android: layout_gravity = "center" en el diseño relativo de los padres.


He encontrado una solución a mis problemas que es bastante similar a la tuya.

Antes que nada, solo tengo un LinearLayout con 2 elementos, un ImageView y un LinearLayout que contiene 2 EditText y un botón, así que necesitaba mantenerlos separados en pantalla completa sin teclado, y cuando aparece el teclado deberían mirar más de cerca.

Así que agregué la vista entre ellos con el atributo de altura en 0dp y peso 1, que me permitió mantener mis vistas separadas una de la otra. y cuando aparece el teclado, ya que no tienen una altura de corrección, simplemente cambian de tamaño y mantienen el aspecto.

Voila! El diseño cambia el tamaño y la distancia entre mis vistas es la misma cuando el teclado está o no presente.


Intenté un método de Diego Ramírez, funciona. En AndroidManifest:

<activity android:name=".MainActivity" android:windowSoftInputMode="stateHidden|adjustResize"> ... </activity>

En activity_main.xml:

<LinearLayout ... android:orientation="vertical"> <Space android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1" /> <EditText android:id="@+id/edName" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:hint="@string/first_name" android:inputType="textPersonName" /> <EditText ...> ... </LinearLayout>


También puede usar este código en el método onCreate() :

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


para la actividad en su método de insertar oncreate debajo de la línea

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

y para fragmentos en su método onCreate

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);


problema similar que estaba enfrentando con mi diseño que consiste en vista de desplazamiento dentro. Cada vez que trato de seleccionar texto en EditText, la barra de acciones Copiar / Cortar / Pegar se mueve hacia arriba con el código siguiente, ya que no cambia el tamaño del diseño

android:windowSoftInputMode="adjustPan"

Modificándolo a como abajo

1) AndroidManifest.xml

android:windowSoftInputMode="stateVisible|adjustResize"

2) archivo style.xml, en estilo de actividad

<item name="android:windowActionBarOverlay">true</item>

Funcionó.!!!!!!!!!!!!


si está en fragmentos, entonces tiene que agregar el siguiente código a su onCreate en su actividad, resuelve el problema para mí

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);