¿Cómo coloco los widgets encima y debajo de una vista de lista?
Tengo una vista de lista y quiero poner cosas tanto arriba (en el eje y) y debajo (eje y) que incluye imágenes, vistas de texto y una fila de botones. A continuación se muestra una versión simplificada de lo que estoy creando. Desafortunadamente, la lista cubre (es decir, sobre el eje z) el encabezado para que el texto del encabezado no esté visible en lugar de estar debajo (en el eje y)
<?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í está la clase de actividad correspondiente:
- RemoveAllViews no quitar vistas
- Necesidad de diseñar el diseño de la arquitectura de una aplicación Android
- No se puede obtener elemento del diseño
- Android: ¿cómo tener este tipo de selección de tiempo?
- ¿Cómo hacer la actividad no a pantalla completa?
public class SampleListActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.list_activity); } }
- Cómo utilizar el flujo principal / detallado junto con las pestañas de Android
- Cómo configurar la aplicación: tabBackground de un tabLayout Programaticamente?
- Diseño de aplicaciones de Android: derecho dividido entre actividades, servicios e hilos?
- Android - personalización de las pestañas de barra de acción de sherlock
- ¿Cómo conseguir la sombra en la disposición linear androide?
- ¿Por qué esta línea xmlns: android = "http://schemas.android.com/apk/res/android" debe ser la primera en el archivo xml de diseño?
- ¿Cuáles son las nuevas características de Android Design Support Library y cómo usar su Snackbar?
- ¿Cómo colocar textview a la derecha ya la izquierda del diseño?
No pude conseguir un diseño relativo para trabajar en Android 1.5, pero sí conseguí Linear Layout para trabajar. 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>
Esto debería funcionar utilizando 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 : eliminado android: orientación como se sugiere
Si está orientado a Android 1.6 o superior, agregue un android:layout_below="@id/header"
a sus atributos existentes en el ListView
.
Si sigues orientado a Android 1.5, necesitarás hacer ese android:layout_below="@+id/header"
y tal vez quitar el signo +
del atributo android:id="@+id/header"
en TextView
.
RelativeLayout
, a partir de 1.6, admite referencias directas a otros widgets, siempre y cuando la primera aparición del valor ID tenga el signo +
.
Sólo tiene que poner el peso 1 a la lista dentro de un diseño lineal, las otras textviews / botones / etc no necesitan tener ningún valor de peso.
Aquí hay un ejemplo: https://bitbucket.org/generalplus/android_development/src/5a892efb0551/samples/ApiDemos/res/layout/linear_layout_9.xml
- ¿Por qué mi hilandero personalizado está llenando el nombre de mi paquete?
- ¿Existe una variante de caso?