[android]控件ListView簡介

ListView---列表

以垂直的方式排列其內部item

ListView中的item可以被定義成各種複雜的界面

一般用於數據集的展示


列表顯示需要的三要素

ListView---用來展示列表的view

適配器---用來把數據映射到ListView上

數據---具體的將被映射的字符串、圖片、基本控件等


需要用適配器的原因:

ListView是AdapterView的間接子類,而AdapterView重寫addView()方法時,禁用了該方法的使用

AdapterView使用Adapter接口,爲自己提供綁定有數據的item界面

所以此處使用適配器模式:

  源:各種需要在ListView顯示的數據集

  目標接口:Adapter接口

  適配器:將各種不同的數據集轉換爲統一的輸出接口(Adapter接口)

                   適配器實現步驟:實現Adapter接口  包含源對象




自定義ListView背景:

在Android中,ListView是最常用的一個控件,在做UI設計的時候,很多人希望能夠改變一下它的背景,使他能夠符合整體的UI設計,改變背景背很簡單只需要準備一張圖片然後指定屬性 android:background="@drawable/bg" ,不過不要高興地太早,當你這麼做以後,發現背景是變了,但是當你拖動,或者點擊list空白位置的時候發現ListItem都變成黑色的了,破壞了整體效果,如下圖所示

                        
 
這是爲什麼呢?
這個要從Listview的效果說起,默認的ListItem背景是透明的,而ListView的背景是固定不變的,所以在滾動條滾動的過程中如果實時地去將當前每個Item的顯示內容跟背景進行混合運算,所以android系統爲了優化這個過程用,就使用了一個叫做android:cacheColorHint 的屬性,在黑色主題下默認的顏色值是#191919,所以就出現了剛纔的畫面,有一半是黑色的

那怎麼辦呢?
如果你只是換背景的顏色的話,可以直接指定android:cacheColorHint 爲你所要的顏色,如果你是用圖片做背景的話,那也只要將android:cacheColorHint 指定爲透明(#00000000)就可以了,當然爲了美化是要犧牲一些效率的。最後美化的效果如圖:


                                       

 
轉載出處 http://haric.iteye.com 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章