2011-06-28 50 views
9

當我的列表視圖沒有完全填滿列表視圖項目(如果我的列表視圖對於8個項目來說足夠高,但我只有2個),空白區域顯示在我的Droid X上爲灰色。在模擬器中,空白區域顯示爲黑色。在Android中設置ListView的'空'區域的顏色

如何將「空白」區域設置爲透明?

我試着設置背景顏色,緩存提示,但這些似乎只是改變了它有項目的列表視圖的背景顏色,而不是空白區域。

+0

您是否嘗試設置列表視圖高度FILL_PARENT?也許設置背景顏色,然後會給你的結果 – Marmoy

回答

18

摩托羅拉曾經有一篇關於這種行爲的博客文章,但他們的博客已不在線 - 答案是Motoblur 2.3,他們設置了一個默認的超滾頁腳,可以通過設置android:overScrollFooter="@null"來解決,但僅限於Android 2.3+。

他們推薦的應用程序範圍解決方案是使用自定義主題,該自定義主題僅在具有該屬性集的values-v10文件夾中設置的自定義listViewStyle

+0

偉大的作品,謝謝。 – Sileria

+0

優秀,我有同樣的問題,這個答案解決了我的問題......謝謝! – avmauricio

+0

博客文章鏈接似乎沒有鏈接任何與此特定問題相關的任何地方(也許他們刪除了?),但這個信息仍然爲我創造奇蹟。對於以編程方式實例化其ListView的任何人,請注意您可以在API級別9之後調用它的setOverscrollFooter()方法。其參數應爲null。 – SilithCrowe

1

看起來像刪除layout_alignParentBottom =「true」做的伎倆。因此,而不是改變灰色,列表視圖只有足夠大才能繪製所需的項目。

0

刪除layout_alignParentBottom="true"和更改height="wrap_content"是不完全足夠的。如果在屏幕底部或ListView下方沒有其他小部件,則這些解決方案可以工作。但是,如果ListView下還有其他佈局項目,則必須將ListView包裝在另一個佈局(例如LinearLayout)中,以便容器可以採用必要的高度(fill_parent),而ListView中的ListView可以是允許自身縮小(wrap_content),這樣ListView下方的灰色背景將不會被修改後的Motorola OS v2.3.3頁腳行爲顯示。

下面是一個例子:List View Footer Background on Android 2.3.3

2

程序化的解決方案佔了MotoBlur的錯誤:

if (Build.VERSION.SDK_INT >= 8 && Build.VERSION.SDK_INT <= 10) { 
    mListView.setOverscrollFooter(null); 
}