reference to : http://blog.csdn.net/lovexieyuan520/article/details/50846569
在默認的Android控件ListView在頂部是不顯示分割線的,但是我們可以使用一些技巧來顯示。我們先來看下默認情況下ListView顯示的效果:
可以看到頂部是沒有分割線的,但是有時候我們的美工硬是在上面畫了一條分割線,沒辦法,我們也得加上,我們在ListView頂部加上一個Header就可以實現,代碼如下
listView.addHeaderView(new ViewStub(this));
加上這么一句代碼后就會顯示頂部的分割線
看到沒,我們ListView的頂部加上了分割線,但是要注意,ListView有這么一個屬性android:headerDividersEnabled
,它的默認值為true,也就是說默認是顯示header的分割線的,如果我們將其設置為false則不會顯示分割線的。
我們設置了頂部的分割線,下面我們設置下底部的分割線,比設置頂部的分割線要麻煩點。如果我們將ListView的android:layout_height設置為wrap_content則,情況跟頂部加分割線是一樣的:
listView.addFooterView(new ViewStub(this));
我們看到已經加上底部分割線了,但是要注意android:footerDividersEnabled屬性,跟android:headerDividersEnabled是一樣的,不再贅述。
如果我們設置ListView的android:layout_height設置為match_parent或者一個具體的值時,則效果如下
底部的分割線居然變粗了一半。原來當ListView內容的高度小於ListView的高度,那么ListView就會在最后一個Item加上一個分割線,這個時候兩個分割線疊加起來,所以底部的分割線變寬了。
一般來說,我們在使用ListView的時候,我們把android:layout_height設置wrap_content,這樣就不會出問題,但是 有時候我們需要把ListView固定在某個高度,超過這個高度就滾動,怎么辦呢,這時我們可以在ListView的外部套上一個容器,比如 FrameLayout,ListView的android:layout_height還是設置為wrap_content,當ListView的內容 超過FrameLayout的高度時,就會顯示滾動條,又不會在最后一個Item下顯示分割線。
大功告成,希望對大家有所裨益!!!