Listview cambia la posición de otras vistas en el teclado abierto

He creado la pantalla del androide con LinearLayout en el cual he utilizado la propiedad del layout_sum para la división de la pantalla. En eso creó un EditText para la búsqueda en ListView que parece aceptable antes de abrir el teclado suave. Pero cuando abro el teclado EditText se esconde como muestra en las imágenes.

Aquí está mi código xml.

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:weightSum="3" > <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="0.9" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="horizontal" android:weightSum="4" > <TextView android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="3dp" android:layout_weight="1" android:gravity="center" android:text="T100" android:textSize="12sp" android:textStyle="bold" /> <TextView android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="3dp" android:layout_weight="1" android:gravity="center" android:text="A100" android:textSize="12sp" android:textStyle="bold" /> <TextView android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="3dp" android:layout_weight="1" android:gravity="center" android:text="P100" android:textSize="12sp" android:textStyle="bold" /> <TextView android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="3dp" android:layout_weight="1" android:gravity="center" android:text="S100" android:textSize="12sp" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="horizontal" android:weightSum="4" > <TextView android:id="@+id/txtSearch" android:layout_width="0dp" android:layout_height="match_parent" android:layout_below="@id/lvdetail" android:text="Search :" android:layout_weight="1" android:gravity="center"/> <EditText android:id="@+id/eatmcode" android:layout_width="0dp" android:layout_height="match_parent" android:ems="2" android:focusableInTouchMode="true" android:hint="Enter ATM" android:imeOptions="actionSearch" android:inputType="text" android:textSize="16dp" android:layout_weight="2"/> </LinearLayout> <TextView android:id="@+id/txtLabel" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/txtSearch" android:layout_marginBottom="10dp" android:gravity="center_horizontal" android:paddingTop="10dp" android:text="List of Vehicle" android:textSize="14dp" android:textStyle="bold" /> </LinearLayout> <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="2.1" android:transcriptMode="normal" > </ListView> </LinearLayout> 

Pantalla antes de abrir el teclado

Introduzca aquí la descripción de la imagen

Después de abrir el teclado

Introduzca aquí la descripción de la imagen

Cualquier ayuda será apreciada. Gracias.

No utilice el peso en LinearLayout encima de ListView, es decir, use altura fija y establezca el peso como 1 para ListView.

Editar:

Código de muestra:

 <LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > ... </LinearLayout> <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:transcriptMode="normal" > </ListView> </LinearLayout> 

Añadir android:windowSoftInputMode="adjustPan" en su etiqueta de actividad actual en el archivo de manifiesto.

Usted tiene que cambiar su archivo de manifiesto

En su actividad tag add como abajo

 <activity android:name="com.companyname.applicationname" android:windowSoftInputMode="adjustPan"> 

Vea este enlace para más información

Eliminar peso en listView y LinearLayout utilizar wrap_content como este

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:weightSum="3" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="horizontal" android:weightSum="4" > <TextView android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="3dp" android:layout_weight="1" android:gravity="center" android:text="T100" android:textSize="12sp" android:textStyle="bold" /> <TextView android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="3dp" android:layout_weight="1" android:gravity="center" android:text="A100" android:textSize="12sp" android:textStyle="bold" /> <TextView android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="3dp" android:layout_weight="1" android:gravity="center" android:text="P100" android:textSize="12sp" android:textStyle="bold" /> <TextView android:layout_width="0dp" android:layout_height="match_parent" android:layout_margin="3dp" android:layout_weight="1" android:gravity="center" android:text="S100" android:textSize="12sp" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="horizontal" android:weightSum="4" > <TextView android:id="@+id/txtSearch" android:layout_width="0dp" android:layout_height="match_parent" android:text="Search :" android:layout_weight="1" android:gravity="center"/> <EditText android:id="@+id/eatmcode" android:layout_width="0dp" android:layout_height="match_parent" android:ems="2" android:focusableInTouchMode="true" android:hint="Enter ATM" android:imeOptions="actionSearch" android:inputType="text" android:textSize="16dp" android:layout_weight="2"/> </LinearLayout> <!-- <TextView android:id="@+id/txtLabel" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/txtSearch" android:layout_marginBottom="10dp" android:gravity="center_horizontal" android:paddingTop="10dp" android:text="List of Vehicle" android:textSize="14dp" android:textStyle="bold" /> --> </LinearLayout> <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="wrap_content" android:transcriptMode="normal" > </ListView> </LinearLayout> 
  • Cómo establecer la línea como un fondo utilizando xml (forma) a continuación para EditText?
  • Ignorar elementos no está permitido aquí, en Android lint.xml
  • Ajustes redimensionables en Android 3.1
  • ¿Qué significa esto "xmlns: xliff"? XML
  • ¿Es posible tener más de un archivo de recursos de cadena en Android?
  • El diseño de Xml cambia al cambiar la orientación
  • Diseño de notificaciones personalizadas de Android con RemoteViews
  • Botón personalizado en la barra de título del cuadro de diálogo
  • Obtener el id de una vista como String en el evento onClick
  • Android: Caja blanca no deseada en la parte superior de la pantalla (barra de herramientas?)
  • Problema al analizar cadena xml en java
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.