2011-06-19 11 views

Odpowiedz

96

Jeśli aktywność rozciąga ListActivity następnie trzeba coś takiego:

<LinearLayout android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:orientation="vertical"> 

    <ListView android:id="@android:id/list" 
       android:layout_height="0dip" 
       android:layout_width="match_parent" 
       android:layout_weight="1" /> 

    <Button android:id="@+id/btn" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"/> 

</LinearLayout> 

Zauważ, że widok listy ma wartość layout_weight ustawioną na 1. To spowoduje, że przycisk zostanie na stałe ustawiony na dole. Nadzieja, która pomaga. Powodzenia!

+1

dziękuję za kod ... – user4232

+1

jeśli używasz 'waga' i' orientacja' jest 'pionowa', powinieneś więc mieć:' android: layout_height = "0dp" ' – Houcine

+1

Houcine, masz rację. W jednej z ostatnich aktualizacji Google zmienił ADT, aby wyświetlał ostrzeżenie podczas używania "fill_parent". Wiele się zmieniło, odkąd odpowiedziałem na to pytanie w czerwcu 2011 roku. Zmieniłem odpowiedź i sprawiłem, że jest aktualna. –

14

można użyć RelativeLayout naprawić przycisk w dolnej części układu, a następnie dodaj swój ListView nad nim tak:

<RelativeLayout android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <Button android:id="@+id/btn" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true"/> 

    <ListView 
      android:id="@android:id/list" 
      android:layout_height="match_parent" 
      android:layout_width="match_parent" 
       android:layout_above="@id/btn" /> 
</RelativeLayout> 
+0

I generowane ListView rozszerzając klasę 'ListActivity' i używając' getListView() ', aby je zdobyć. Ale jeśli teraz używam layoutu i używam 'setContentView' do ustawienia go, aplikacja zgłasza następujący wyjątek:' Twoja zawartość musi mieć ListView, którego atrybutem jest 'android.R.id.list'' –

+0

Myślę, że powinieneś dostosować Twój ListView, gdy go otrzymasz !! czy możesz też dodać swój kod i logcat? – Houcine

+1

nazwij listę android: id = "@ android: id/list" jeśli chcesz użyć getListView() – mkso

1

Moje rozwiązanie oparte na Houcline na solution ale ListView zawsze powyżej Button

<CheckBox 
    android:id="@+id/chbRemoveIfUninstall" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true"/> 
<ListView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_above="@id/chbRemoveIfUninstall"/> 

Powiązane problemy