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.

4 Solutions collect form web for “Listview cambia la posición de otras vistas en el teclado abierto”

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> 
  • Botón uniformemente espaciado en Layout
  • ¿Cómo puedo analizar un espacio de nombres con el analizador SAX?
  • Android: Ancho y altura del icono del iniciador en DP
  • Valores XML de Android - Conjunto de cadenas :: ¿Colocación de una cotización en el valor?
  • Variables de Android en strings.xml
  • Android.view.InflateException: Línea de archivo XML binario # 12: Error al inflar la clase <unknown>
  • ¿Cómo usar la vista propia en el diseño?
  • Color del borde del botón de Android
  • Crashing debido a "No identificador de paquete al obtener el valor del número de recurso ..."
  • Botón hexagonal con área de toque hexagonal
  • Referencia una pantalla de preferencias de Android separada desde dentro de otra pantalla de preferencias en XML
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.