2012-06-22 6 views
7

Sto lavorando su alcuni ListView Voglio visualizzare uno Button sotto di esso Sto usando il seguente codice ma non funziona.Pulsante sotto ListView non visibile in Android

<?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> 

il pulsante non è visibile, non so perché: /. qualsiasi aiuto sarà utile per quanto riguarda.

+0

Prova dando un valore larghezza definita anziché wrap_content, cioè '150dp'. – Mxyk

+0

Ho provato questo e la listview è entrata nell'area del pulsante. – EJK

risposta

9

visualizzazione elenco prende l'intera pagina. Cerca di dare il peso desiderato agli elementi del tuo codice. Utilizzare questo codice,

<?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:layout_weight="5" /> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Button" 
    android:layout_weight="1" /> 

</LinearLayout> 
+1

Più bello usare android: layout_weight invece di android: peso. – Mornor

8

Questo sta accadendo perché ListView ha l'altezza impostata su wrap_content, che si estende per accogliere tutti gli elementi che non lasciano spazio sullo schermo per il pulsante. È possibile utilizzare il layout relativo impostando il pulsante nella parte inferiore e poi la listview di occupare lo spazio rimanente:

<?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> 
+0

Questo farà sempre fluire il pulsante nella parte inferiore dello schermo. Non l'effetto in cui è possibile scorrere l'elenco e trovare il pulsante. –

+0

Ma non è quello che l'op stava chiedendo. –

5

Ho aggiunto questa linea .............. Android: peso = "1" .......... all'interno la vista elenco come sotto

<?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> 
+0

Dovresti annotare le tue modifiche, dobbiamo trovare diferrences nel tuo e nel codice OP – maskacovnik

+1

Ho aggiunto questa riga .............. android: weight = "1" ..... ..... nella vista elenco – Cloy

+0

Questa cosa mi ha aiutato anche ................ Grazie – krishnamahadik

0

L'aggiunta di peso o l'allineamento del fondo faranno sempre galleggiare il pulsante nella parte inferiore dello schermo. E la lista andrà sotto di essa.

Se si desidera visualizzare il pulsante dopo scorrere verso il basso l'elenco, quindi aggiungere il pulsante come un piè di pagina alla visualizzazione elenco.

1

Per questo il pulsante e il listview dovrebbero essere in una stessa linearlayout, se tutte le viste sono in un layout relativo, aggiungere il listview e il pulsante a un layout lineare e dare peso a listview come 1, questo ha funzionato per me.

<?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>