2011-08-02 66 views
9

我有一個ListView可以包含任意數量的項目。當它使用小於屏幕的整個高度時,我想顯示一個填充剩餘空間的頁腳。如何讓ListView伸展的頁腳填充剩餘空間?

頁腳只是一個平鋪圖像。我不能將它設置爲ListView或其容器的背景,因爲列表項是部分透明的,它必須是主背景,而不是通過它們可見的頁腳。

添加頁腳視圖如果頁腳是一個固定的高度的工作正常,但如果在固定的高度大於剩餘高度然後ListView的滾動不必要更多。

使得頁腳視圖FILL_PARENT似乎沒有任何影響,它只是不可見。

把頁腳視圖到父佈局也沒有任何影響,因爲ListView中似乎充滿了整個高度,除非它給了一個固定的layout_height值。

這可能嗎?

+0

對所有回答者的道歉,我忽略了說ListView是在一個ListFragment中,這似乎是導致父佈局解決方案不起作用的原因。我改變它是一個正常的片段,並明確設置ListView,使用重量現在的作品。感謝您的努力! – Ouchdroid

+0

嗨,我很好奇你的解決方案..在哪個佈局你把重量?列表視圖或列表項視圖? – akhyar

回答

1

嘗試佈局權重設定爲一個,或檢查出試圖合併視圖: http://android-developers.blogspot.com/2009/03/android-layout-tricks-3-optimize-by.html

+0

即使使用權重爲1的其他元素,ListView也會佔用整個父項。我無法將頁腳合併到ListView中(AdapterView不支持addView),並將它合併到父項中似乎與將它直接進入父級(用fill_parent填充整個空間,否則不顯示)。 – Ouchdroid

+0

您是動態創建此列表視圖還是從佈局中對其進行膨脹? – Noah

+0

我正在動態創建它。 – Ouchdroid

1

將ListView控件的另一佈局設置內擴大到充滿整個屏幕。

LinearLayout適用於此目的。

事情是這樣的:

<LinearLayout android:layout_height="match_parent" 
      android:layout_width="match_parent" > 
    <ListView android:layout_height="match_parent" 
       android:layout_width="match_parent" > 
     ... 
    </ListView> 
</LinearLayout> 

這應該填補的LinearLayout到屏幕的底部。您可以使用此行爲來控制View的外觀。

希望這會有所幫助!

+0

將一個視圖滾動到另一個滾動視圖內,即'ScrollView'內的'ListView'不是一個好主意。 – Squonk

+0

好點,我改變了答案來反映這一點。 – Codeman

+0

我試過這個。如果我沒有給它一個固定的高度,即使使用重量,這個ListView佔用所有可用空間(這是有道理的,因此我試圖讓頁腳方法起作用。) – Ouchdroid

0

試試這個,告訴我,如果它的工作原理:

  • 把在一個父從兩種佈局(例如:線性佈局)
  • 對於ListView控件:android:layout_hight="wrap_content"
  • 對於頁腳:android:layout_hight="fill_parent"
+0

ListView似乎總是使用fill_parent,如果一個固定的高度沒有指定,wrap_content沒有效果(這是有道理的,因此我試圖讓頁腳方法有效。) – Ouchdroid