2012-01-14 30 views
5

Estoy tratando de crear una vista de Android, con una vista de lista como encabezado y pie de página. hasta el momento solo se administró y solo aparece en el encabezado. Aquí hay una imagen que explica lo que quiero y lo que tengo.listview con encabezado y pie de página

Attempt

¿Alguien sabe lo que estoy haciendo mal? Seque el código actual:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:background="#ffffff"> 

<!-- Header Starts--> 
<LinearLayout android:id="@+id/header" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:background="@layout/header_gradient" 
     android:layout_margin="5dip" 
     android:paddingTop="13dip" 
     android:paddingBottom="8dip"> 
    <!-- Logo Start--> 
    <ImageView android:src="@drawable/logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dip" /> 
    <!-- Logo Ends --> 
</LinearLayout> 
<!-- Header Ends --> 

<!-- Content --> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_height="fill_parent" 
       android:layout_width="fill_parent" 
       android:orientation="vertical" 
       android:gravity="center"> 

     <LinearLayout android:orientation="horizontal" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_margin="5dip"> 

      <EditText android:id="@+id/searchText" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:layout_weight="1"/> 

      <ImageButton android:id="@+id/searchButton" 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:src="@android:drawable/ic_menu_search" /> 
     </LinearLayout> 

     <ListView android:id="@+id/lstNews" 
       android:layout_height="fill_parent" 
       android:layout_width="fill_parent" 
       android:layout_marginLeft="5dip" 
       android:layout_marginRight="5dip" /> 
    </LinearLayout> 

<!-- Footer Start --> 
<LinearLayout android:id="@+id/footer" 
    android:layout_width="fill_parent" 
    android:layout_height="30dip" 
    android:background="@layout/footer_gradient" 
    android:layout_margin="5dip" 
    android:paddingTop="5dip" 
    android:paddingLeft="5dip" 
    android:layout_alignParentBottom="true"> 
    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FFFFFF" android:text="Instituto Superior de " /> 
    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FFFFFF" android:textStyle="bold" android:text="Engenharia" /> 
    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FFFFFF" android:text=" do Porto" /> 
</LinearLayout> 
<!-- Footer Ends --></LinearLayout> 
+1

Debería utilizar RelativeLayout para esto, y luego anclar el encabezado/pie de página a los padres de los bordes. p.ej. 'android: layout_alignParentTop' – Glitch

Respuesta

3

Una opción es utilizar un RelativeLayout en su lugar.

En primer lugar, tendrá que cambiar su LinearLayout más externo a RelativeLayout.

El siguiente paso es agregar la propiedad android:layout_above="@id/content" al encabezado.

<!-- Header Starts--> 
<LinearLayout android:id="@+id/header" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@layout/header_gradient" 
    android:layout_margin="5dip" 
    android:paddingTop="13dip" 
    android:paddingBottom="8dip" 
    android:layout_above="@id/content"> 

El último paso es agregar las propiedades android:layout_above="@id/footer" y android:id="@+id/content" a la LinearLayout que contiene el contenido y la vista de lista es decir

<!-- Content --> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/content" 
      android:layout_height="fill_parent" 
      android:layout_width="fill_parent" 
      android:orientation="vertical" 
      android:gravity="center" 
      android:layout_above="@id/footer"> 
+1

eso es todo. muy mucho –

+0

¡No hay problema, de nada! – silleknarf

0

Los productos que se añaden a la LinearLayout en orden, así que cuando el ListView llena padres que ocupa todo el espacio. Intentaría establecer el layout_weight de ListView en 1.

+0

thx para responder. Pongo el layout_weight en 1 y el resultado es el mismo –

0

En el segundo diseño raíz establecer la altura wrap_content o cualquier otra cosa, pero no fill_parent . Si Yuo desea establecer wrap_content conjunto android:weight1.0 o simples 1

Cuestiones relacionadas