Android中使用ListView控件比較常見,如果能知道常用的一些屬性使用,肯定會少很多坑。
1、ListView是常用的顯示控件,默認背景是和系統窗口一樣的透明色,如果給ListView加上背景圖片,或者背景顏色時,滾動時listView會黑掉,
原因是,滾動時,列表里面的view重繪時,用的依舊是系統默認的透明色,顏色值為#FF0000,
要改變這種情況,只需要調用listView的setCacheColorHint(0),顏色值設置為0
或者xml文件中listView的屬性 Android:cacheColorHint="#00000000"即可,
滾動時,重繪View的時候就不會有背景顏色。
解決:在XML中加入
android:scrollingCache="false" 或 android:cacheColorHint="#00000000"
2、listview的上邊和下邊有黑色的陰影(去除ListView滑到頂部和底部時邊緣的黑色陰影)
解決: android:fadingEdge="none"
3、修改listview的Item默認選擇時的黃色背景(去除選中時的黃色底色:)
解決:在java文件中使用listview.setSelector()方法,或使用如下代碼
android:listSelector="#00000000"//這樣寫是透明的,也可加入Drawable圖片
android:listSelector="@null"。
自定義listview的時候,當你不使用android:cacheColorHint=“#000000AA”會出現下面選中一個空間黑色底色的情況,破壞整體美觀度:
4、lsitview的每一項之間需要設置一個圖片做為間隔
解決: android:divider=”@drawable/list_driver”
5、去除行與行之間的黑線:
msgList.setDivider(null);
6、ListView刷新后自動滾到最底部:
Java代碼
msgList.setSelection(msgList.getAdapter().getCount()-1);
7、
默認情況下使用ListView背景色是黑色,選中item的高亮顏色是菊黃色,很多時候不得不自己定義背景色或者背景圖
android:cacheColorHint="@android:color/transparent",意思為去黑色底色,
比如ListView滾動時會刷新界面,默認顏色還是系統顏色,所以采用這種方式設置其為透明即可,
這個屬性在ListView中使用圓角圖片來設置ListView時很有用
android:divider="@null"用於去掉listview的item之間的黑線
android ListView幾個比較特別的屬性
1、stackFromBottom屬性,這只該屬性之后你做好的列表就會顯示你列表的最下面,值為true和false
android:stackFromBottom="true"
3、transciptMode屬性,需要用ListView或者其它顯示大量Items的控件實時跟蹤或者查看信息,並且希望最新的條目可以自動滾動到可視范圍內。通過設置的控件transcriptMode屬性可以將Android平台的控件(支持ScrollBar)自動滑動到最底部。
android:transcriptMode="alwaysScroll"
4、cacheColorHint屬性,很多人希望能夠改變一下它的背景,使他能夠符合整體的UI設計,改變背景背很簡單只需要准備一張圖片然后指定屬性 android:background="@drawable/bg",不過不要高興地太早,當你這么做以后,發現背景是變了,但是當你拖動,或者點擊list空白位置的時候發現ListItem都變成黑色的了,破壞了整體效果。
5、如果你只是換背景的顏色的話,可以直接指定android:cacheColorHint為你所要的顏色,如果你是用圖片做背景的話,那也只要將android:cacheColorHint指定為透明(#00000000)就可以了
6、divider屬性,該屬性作用是每一項之間需要設置一個圖片做為間隔,或是去掉item之間的分割線
android:divider="@drawable/list_driver" 其中 @drawable/list_driver 是一個圖片資源,如果不想顯示分割線則只要設置為android:divider="@drawable/@null" 就可以了
7、fadingEdge屬性,上邊和下邊有黑色的陰影
android:fadingEdge="none" 設置后沒有陰影了~
8、scrollbars屬性,作用是隱藏listView的滾動條,
android:scrollbars="none"與setVerticalScrollBarEnabled(true);的效果是一樣的,不活動的時候隱藏,活動的時候也隱藏
9、fadeScrollbars屬性,android:fadeScrollbars="true" 配置ListView布局的時候,設置這個屬性為true就可以實現滾動條的自動隱藏和顯示。