TextViews en la parte superior e inferior, el espacio restante lleno de ListView

Estoy tratando de poner un TextView en la parte superior, otro en la parte inferior, y un ListView entre usando el espacio restante. Sin embargo, mi ListView está llevando todo el espacio al fondo, haciendo que el último TextView no aparezca. La única manera que puedo hacer que aparezca es darle al ListView una altura fija, como 100dp.

Mi diseño:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/id_task_list_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/title_task_list" style="?android:attr/listSeparatorTextViewStyle" /> <ListView android:id="@+id/id_task_list_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/id_task_list_title" /> <TextView android:id="@+id/id_task_list_test" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/id_task_list_view" android:text="OMG Test" /> </RelativeLayout> 

Utilice LinearLayout como sigue:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:orientation="vertical"> <TextView android:id="@+id/id_task_list_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/title_task_list" style="?android:attr/listSeparatorTextViewStyle" /> <ListView android:id="@+id/id_task_list_view" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"/> <TextView android:id="@+id/id_task_list_test" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="OMG Test" /> </LinearLayout> 

Esto debería solucionar su problema colocando su ListView entre las TextViews usando android: layout_above y android: layout_below:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/id_task_list_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/title_task_list" style="?android:attr/listSeparatorTextViewStyle" /> <TextView android:id="@+id/id_task_list_test" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:text="OMG Test" /> <ListView android:id="@+id/id_task_list_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_above="@id/id_task_list_test" android:layout_below="@id/id_task_list_title"/> </RelativeLayout> 

Se puede lograr una de las dos maneras

1) Uso del diseño lineal (derecho)

2) Uso de Disposición Relativa con referencia a la posición de la vista con respecto a las otras vistas.

En tu caso

1) Cambio relativo a LinearLayout y se realizará el trabajo.

2)

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/id_task_list_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/title_task_list" style="?android:attr/listSeparatorTextViewStyle" /> <ListView android:layout_below="@+id/id_task_list_title" android:id="@+id/id_task_list_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/id_task_list_title" /> <TextView android:layout_below="@+id/id_task_list_view" android:id="@+id/id_task_list_test" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/id_task_list_view" android:text="OMG Test" /> </RelativeLayout> 

Esto se puede hacer a través de la codificación obteniendo la altura de la pantalla y alloting el ancho del parámetro de diseño a la vista de lista como este

Height of list view = altura de la pantalla (altura de textView1 + altura de textView2).

En lugar de usar RelativeLayout, use LinearLayout con Orientación Vertical.

Creo que soluciona tu problema

Gracias

  • Android sola línea TextView sin los puntos
  • XAMARIN (C #) - ¿Hay una manera de subrayar un TextView mediante programación?
  • A veces, las extensiones de la imagen no son visibles cuando el contenido cubre varias líneas en la vista de texto
  • Forzar la siguiente palabra a una nueva línea si la palabra es demasiado larga para la vista de texto
  • ¿Puedo establecer un color de texto para los enlaces dentro de una vista de texto?
  • ¿Puedo deshabilitar el desplazamiento en TextView cuando se utiliza LinkMovementMethod?
  • La vista de texto de Android no se enrolla correctamente
  • Cómo obtener las coordenadas XY y el tamaño de píxeles de un TextView?
  • TextView en el centro de la pantalla
  • Cómo configurar el fondo de un TextView dinámicamente desde un archivo Xml
  • Espaciado de líneas por defecto de Android TextView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.