2010-03-16 10 views
6

Tengo una vista de lista y quiero poner cosas tanto arriba (en el eje y) como debajo (eje y), incluyendo imágenes, vistas de texto y una fila de botones. A continuación hay una versión simplificada de lo que estoy creando. Desafortunadamente las cubiertas de lista (es decir, por encima en el eje z) la cabecera de modo que el texto de cabecera no es visible en lugar de estar debajo (en el eje y)¿Cómo coloco los widgets arriba y debajo de una vista de lista?

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

    <TextView android:id="@+id/footer" 
     android:text="footer" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
     android:layout_alignParentBottom="true" 
     /> 

    <ListView android:id="@+id/list_view" 
     android:layout_height="fill_parent" 
     android:layout_width="fill_parent" 
     android:layout_above="@id/footer" 
     android:background="#ff9999ff"/> 

    <TextView android:id="@+id/header" 
     android:text="header" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
     android:layout_alignParentTop="true" 
     android:layout_above="@id/list_view" 
     android:baselineAlignBottom="false" 
     /> 

</RelativeLayout> 

Aquí es la clase de actividad correspondiente:

public class SampleListActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.list_activity); 

    } 
} 

Respuesta

9

No pude obtener el diseño relativo para que funcione en Android 1.5, pero conseguí que Linear Layout funcionara. A continuación se muestra mi solución:

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

    <TextView android:id="@+id/header" 
     android:text="header" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
     android:layout_weight="0" 
     /> 
    <ListView android:id="@+id/list_view" 
     android:layout_height="fill_parent" 
     android:layout_width="fill_parent" 
     android:background="#ff9999ff" 
     android:layout_weight="1"/> 

    <TextView android:id="@+id/footer" 
     android:text="footer" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
     android:layout_weight="0" 
     /> 
</LinearLayout> 
2

Si su objetivo es Android 1.6 y versiones posteriores, agregue un android:layout_below="@id/header" a sus atributos existentes en el ListView.

Si todavía está apuntando Android 1.5, tendrá que hacer que android:layout_below="@+id/header" y tal vez eliminar el signo de la +android:id="@+id/header" atributo actual en el TextView.

RelativeLayout, a partir de 1.6, admite referencias a otros widgets, siempre que la primera aparición del valor de ID tenga el signo +.

5

Esto debería funcionar usando RelativeLayout:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <TextView android:id="@+id/header" 
     android:text="header" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" /> 

    <TextView android:id="@+id/footer" 
     android:text="footer" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
     android:layout_alignParentBottom="true"/> 

    <ListView android:id="@id/android:list" 
     android:layout_height="fill_parent" 
     android:layout_width="fill_parent" 
     android:layout_below="@id/header" 
     android:background="#ff9999ff"/> 

</RelativeLayout> 

Editar: androide eliminado: la orientación como se sugiere

+0

androide: orientación está mal aquí creo – letroll

Cuestiones relacionadas