Android中使用ListView控件比較常見,若是能知道經常使用的一些屬性使用,確定會少不少坑。java
一、ListView是經常使用的顯示控件,默認背景是和系統窗口同樣的透明色,若是給ListView加上背景圖片,或者背景顏色時,滾動時listView會黑掉,
緣由是,滾動時,列表裏面的view重繪時,用的依舊是系統默認的透明色,顏色值爲#FF0000,
要改變這種狀況,只須要調用listView的setCacheColorHint(0),顏色值設置爲0
或者xml文件中listView的屬性 Android:cacheColorHint="#00000000"便可,
滾動時,重繪View的時候就不會有背景顏色。
解決:在XML中加入
android:scrollingCache="false" 或 android:cacheColorHint="#00000000"android
二、listview的上邊和下邊有黑色的陰影(去除ListView滑到頂部和底部時邊緣的黑色陰影)
解決: android:fadingEdge="none"ide
三、修改listview的Item默認選擇時的黃色背景(去除選中時的黃色底色:)
解決:在java文件中使用listview.setSelector()方法,或使用以下代碼
android:listSelector="#00000000"//這樣寫是透明的,也可加入Drawable圖片佈局
android:listSelector="@null"。
自定義listview的時候,當你不使用android:cacheColorHint=「#000000AA」會出現下面選中一個空間黑色底色的狀況,破壞總體美觀度:spa
四、lsitview的每一項之間須要設置一個圖片作爲間隔
解決: android:divider=」@drawable/list_driver」設計
五、去除行與行之間的黑線:
msgList.setDivider(null); xml
六、ListView刷新後自動滾到最底部:
Java代碼
msgList.setSelection(msgList.getAdapter().getCount()-1); 圖片
七、
默認狀況下使用ListView背景色是黑色,選中item的高亮顏色是菊黃色,不少時候不得不本身定義背景色或者背景圖
android:cacheColorHint="@android:color/transparent",意思爲去黑色底色,
好比ListView滾動時會刷新界面,默認顏色仍是系統顏色,因此採用這種方式設置其爲透明便可,
這個屬性在ListView中使用圓角圖片來設置ListView時頗有用
android:divider="@null"用於去掉listview的item之間的黑線ip
android ListView幾個比較特別的屬性 ci
一、stackFromBottom屬性,這隻該屬性以後你作好的列表就會顯示你列表的最下面,值爲true和false
android:stackFromBottom="true"
三、transciptMode屬性,須要用ListView或者其它顯示大量Items的控件實時跟蹤或者查看信息,而且但願最新的條目能夠自動滾動到可視範圍內。經過設置的控件transcriptMode屬性能夠將Android平臺的控件(支持ScrollBar)自動滑動到最底部。
android:transcriptMode="alwaysScroll"
四、cacheColorHint屬性,不少人但願可以改變一下它的背景,使他可以符合總體的UI設計,改變背景背很簡單隻須要準備一張圖片而後指定屬性 android:background="@drawable/bg",不過不要高興地太早,當你這麼作之後,發現背景是變了,可是當你拖動,或者點擊list空白位置的時候發現ListItem都變成黑色的了,破壞了總體效果。
五、若是你只是換背景的顏色的話,能夠直接指定android:cacheColorHint爲你所要的顏色,若是你是用圖片作背景的話,那也只要將android:cacheColorHint指定爲透明(#00000000)就能夠了
六、divider屬性,該屬性做用是每一項之間須要設置一個圖片作爲間隔,或是去掉item之間的分割線
android:divider="@drawable/list_driver" 其中 @drawable/list_driver 是一個圖片資源,若是不想顯示分割線則只要設置爲android:divider="@drawable/@null" 就能夠了
七、fadingEdge屬性,上邊和下邊有黑色的陰影
android:fadingEdge="none" 設置後沒有陰影了~
八、scrollbars屬性,做用是隱藏listView的滾動條,
android:scrollbars="none"與setVerticalScrollBarEnabled(true);的效果是同樣的,不活動的時候隱藏,活動的時候也隱藏
九、fadeScrollbars屬性,android:fadeScrollbars="true" 配置ListView佈局的時候,設置這個屬性爲true就能夠實現滾動條的自動隱藏和顯示。