Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android El teclado suave flotará solo un diseño específico

Tengo un diseño, código abajo

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"> <!--some stuff here--> <LinearLayout android:id="@+id/layout1" android:layout_alignParentBottom="true" android:layout_above="@+id/layout2" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <EditText android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="5" /> <ImageButton android:layout_width="50dp" android:layout_height="50dp" android:scaleType="fitStart" android:layout_marginLeft="5dp" style="@style/Base.Widget.AppCompat.Button.Borderless" android:src="@drawable/ic_menu_send"/> </LinearLayout> <LinearLayout android:id="@+id/layout2" android:layout_alignParentBottom="true" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <!--some stuff here--> </LinearLayout> </RelativeLayout> 

En el código anterior cuando el teclado es mostrar quiero layout2 para permanecer en la bottom y layout1 para go up with keyboard . Si agrego el android:windowSoftInputMode="adjustPan|adjustResize" el diseño permanece en la parte inferior. por favor ayuda

6 Solutions collect form web for “Android El teclado suave flotará solo un diseño específico”

Como se puede decir que no es trabajo

 android:windowSoftInputMode="adjustPan|adjustResize" 

Solo cambia esto

android:windowSoftInputMode="stateHidden"

Y una cosa más en el diseño de abajo

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"> <!--some stuff here--> <LinearLayout android:id="@+id/layout1" android:layout_alignParentBottom="true" android:layout_above="@+id/layout2" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <EditText android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="5" /> <ImageButton android:layout_width="50dp" android:layout_height="50dp" android:scaleType="fitStart" android:layout_marginLeft="5dp" style="@style/Base.Widget.AppCompat.Button.Borderless" android:src="@drawable/ic_menu_send"/> </LinearLayout> <LinearLayout android:id="@+id/layout2" android:layout_alignParentBottom="true" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:background="@color/colorPrimary"> <!--some stuff here--> </LinearLayout> </RelativeLayout> 

Tenga en cuenta :

Cuando hayas aplicado esta propiedad android:layout_above="@+id/layout2" a layout1 de tu LinearLayout entonces elimina esta propiedad android:layout_alignParentBottom="true" no lo necesitas.

Así que ahora que se parecen a esto

  <LinearLayout android:id="@+id/layout1" android:layout_above="@+id/layout2" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> 

Nota: Estoy dando background color y specific height a LinearLayout 2 para su comprensión.

Salida:

Pantalla Normal

Introduzca aquí la descripción de la imagen

KeyBoard Pantalla abierta.

Introduzca aquí la descripción de la imagen

Improve:

Introduzca aquí la descripción de la imagen

Vea la imagen superior que hago Red Mark que la característica crea el problema de otra manera cada cosa es trabajo muy bien.

Por favor, utilice esto y dígame si encuentra alguna dificultad

  <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <!--some stuff here--> <ScrollView android:layout_width="wrap_content" android:layout_height="wrap_content"> <LinearLayout android:id="@+id/layout1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_above="@+id/layout2" android:layout_alignParentBottom="true" android:orientation="horizontal"> <EditText android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="5" /> <ImageButton style="@style/Base.Widget.AppCompat.Button.Borderless" android:layout_width="50dp" android:layout_height="50dp" android:layout_marginLeft="5dp" android:scaleType="fitStart" android:src="@drawable/ic_menu_send" /> </LinearLayout> </ScrollView> <LinearLayout android:id="@+id/layout2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:orientation="horizontal"> <!--some stuff here--> </LinearLayout> </RelativeLayout> 

Quite el android:windowSoftInputMode="adjustPan|adjustResize"

A continuación, layout2 el layout2 programática cuando se abre el teclado layout2 . Cuando cierre el teclado, vuelva a hacer visible el layout2 .

Esto le dará al usuario una experiencia que usted quiere exactamente. No soy shure hay cualquier otra manera. Pero sigue buscando. buena suerte

Utilice diferentes temas para ambos diseños.

Tales como: Un tema se refiere a adjustPan para el atributo windowSoftInputMode.

Y otro tema se refiere al atributo adjustResize para windowSoftInputMode.

La forma más rápida es ocultar los diseños cuando el teclado layout2 está habilitado y mostrarlos de nuevo cuando el teclado layout2 está desactivado ( layout2 en el xml)

Eliminar esta línea también

 android:windowSoftInputMode="adjustPan|adjustResize" 

Funcionará, esto es solo una manera simple, todavía estoy buscando por ti

Poner esta línea en su archivo de manifiesto.

  android:windowSoftInputMode="stateHidden" 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.