Botón bajo ListView no visible en android
Estoy trabajando en algún ListView
Quiero mostrar un Button
debajo de él Estoy usando el código siguiente pero eso no está trabajando.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:cacheColorHint="#00000000" android:drawSelectorOnTop="false" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </LinearLayout>
El botón no es visible, no sé por qué: /. Cualquier ayuda será consideraciones útiles.
- ¿Cómo puedo cambiar el diseño de xml incluido en otro diseño en código java?
- ¿Por qué no puedo crear el borde redondo para un rincón específico?
- Shape Drawable Tamaño no funciona
- Android: ¿Cómo crear un TextView circular?
- Cómo llenar los espacios vacíos con contenido debajo de la imagen en android
- Eclipse - Plugin ADT no auto-completando xml
- Android: muestra la barra de herramientas cuando se muestra la barra de herramientas
- Disposición vertical, 2 elementos, Hacer que el primer llenar el espacio restante (inferior uno tiene wrap_content)
- Match_parent no funciona como se esperaba
- Android (cambio de cadena en código java)
- Crear múltiples secciones en un marco y hacer que cada sección funcione singleton
- Cómo poner tres botones de imagen en la misma línea en Android
- Horizontalmente las vistas de centro dentro de Android GridLayout
La vista de lista toma la página completa. Trate de dar el peso deseado a los elementos de su código. Utilice este código,
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:cacheColorHint="#00000000" android:drawSelectorOnTop="false" android:weight="5" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:weight="1" /> </LinearLayout>
Esto sucede porque ListView
tiene la altura establecida en wrap_content
, lo que hace que se extienda para acomodar todos los elementos que no dejan espacio en la pantalla para el botón. Puede utilizar la configuración relativa que establece el botón a lo largo de la parte inferior y luego la vista de lista para ocupar el espacio restante:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:layout_alignParentBottom="true" /> <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:cacheColorHint="#00000000" android:drawSelectorOnTop="false" android:layout_above="@id/button1" /> </RelativeLayout>
He añadido esta línea ………….. android: weight = "1" ………. dentro de la vista de lista como abajo
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:cacheColorHint="#00000000" android:drawSelectorOnTop="false" android:weight="1" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </LinearLayout>
Para esto el botón y el listview deben estar en un mismo lineal, si todas las vistas están en la disposición relativa, agregan el listview y el botón a una disposición linear y dan el peso de la lista como 1, esto trabajó para mí.
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_shipping_address" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/background_all" 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="com.reallymake.android.pottery.ShippingAddressActivity"> <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/textView9" android:layout_centerHorizontal="true" android:layout_marginTop="13dp" android:background="@drawable/button_shape" android:text="@string/ok" /> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/btn_add_new_address" android:orientation="vertical"> <ListView android:id="@+id/lv_addresses" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_below="@+id/list" android:layout_marginTop="14dp" android:layout_weight="1" /> <Button android:id="@+id/btn2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/lv_addresses" android:layout_marginTop="14dp" android:background="@drawable/button_shape" android:text="@string/proceed" /> </LinearLayout>
Añadir peso o alinear el fondo hará que el botón flote en la parte inferior de la pantalla siempre. Y la lista irá debajo de ella.
Si desea mostrar el botón después de desplazarse por la lista, a continuación, agregue el botón como un pie de página a la vista de lista.