ListView的屬性及方法詳解

近期在重新學(xué)習(xí)Android控件知識,目前進(jìn)行到ListView,感覺這是一塊尤其難啃的硬骨頭:最為常用、用法較復(fù)雜、涉及的其他Android知識也較多。因此決定系統(tǒng)地好好復(fù)習(xí)一遍ListView。

仁化ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

一、ListView類的繼承關(guān)系

可以看出,ListView并不直接繼承于View,而是直接繼承于抽象類AbsListView.

ListView的直接子類有:ExpandableListView.

二、ListView概述

      ListView是一個用來縱向顯示條目的視圖,這些條目內(nèi)容來自于與該ListView相關(guān)聯(lián)的ListAdapter.

三、嵌套類

class ListView.FixedViewInfo//用來在列表內(nèi)展現(xiàn)一個固定位置視圖,如在列表頂端的header和在列表底端的footer

四、XML屬性

    1.ListView的XML屬性

android:divider//在列表?xiàng)l目之間顯示的drawable或color  
  
android:dividerHeight//用來指定divider的高度  
  
android:entries//構(gòu)成ListView的數(shù)組資源的引用。對于某些固定的資源,這個屬性提供了比在程序中添加資源更加簡便的方式  
  
android:footerDividersEnabled//當(dāng)設(shè)為false時,ListView將不會在各個footer之間繪制divider.默認(rèn)為true。  
  
android:headerDividersEnabled//當(dāng)設(shè)為false時,ListView將不會在各個header之間繪制divider.默認(rèn)為true。

2.繼承自AbsListView的XML屬性

android:cacheColorHint// 表明這個列表的背景始終以單一、固定的顏色繪制,可以優(yōu)化繪制過程。  
  
android:choiceMode//為視圖指定選擇的行為。可選的類型有:none、singleChoice、multipleChoice、multipleChoiceModal。  
  
android:drawSelectorOnTop// 若設(shè)為true,選擇器將繪制在選中條目的上層。默認(rèn)為false。  
  
android:fastScrollEnabled// 設(shè)置是否允許使用快速滾動滑塊。  
  
android:listSelector// 設(shè)置選中項(xiàng)顯示的可繪制對象,可以是圖片或者顏色屬性。  
  
android:scrollingCache// 設(shè)置在滾動時是否使用繪制緩存。若設(shè)為true,則將使?jié)L動表現(xiàn)更快速,但會占用更內(nèi)存。默認(rèn)為true。  
  
  
android:smoothScrollbar// 為真時,列表會使用更精確的基于條目在屏幕上的可見像素高度的計(jì)算方法。默認(rèn)該屬性為真,如果你的適配器需要繪制可變高的條目,他應(yīng)該設(shè)為假。當(dāng)該屬

性為真時,你在適配器在顯示變高條目時,滾動條的把手會在滾動的過程中改變大小。當(dāng)設(shè)為假時,列表只使用適配器中的條目數(shù)和屏幕上的可見條目來決定滾動條的屬性。  
  
android:stackFromBottom// 設(shè)置GridView和ListView是否將內(nèi)容從底部開始顯示。  
  
android:textFilterEnabled// 當(dāng)設(shè)為真時,列表會將結(jié)果過濾為用戶類型。前提是這個列表的Adapter必須支持Filterable接口。  
  
android:transcriptMode//設(shè)置列表的transcriptMode.有如下選項(xiàng)可選:  
//(1)disabled          禁用TranscriptMode,也是默認(rèn)值;  
//(2)normal             當(dāng)新條目添加進(jìn)列表中并且已經(jīng)準(zhǔn)備好顯示的時候,列表會自動滑動到底部以顯示最新條目;  
//(3)alwaysScroll   列表會自動滑動到底部,無論新條目是否已經(jīng)準(zhǔn)備好顯示.

3.繼承自ViewGroup的XML屬性

android:addStatesFromChildren// 設(shè)置這個ViewGroup的drawable狀態(tài)是否包括子View的狀態(tài)。若設(shè)為true,當(dāng)子View如EditText或Button獲得焦點(diǎn)時,整個ViewGroup也會獲得焦點(diǎn)。  
  
android:alwaysDrawnWithCache// 設(shè)置ViewGroup在繪制子View時是否一直使用繪圖緩存。默認(rèn)為true。  
  
android:animationCache// 設(shè)置布局在繪制動畫效果時是否為其子View創(chuàng)建繪圖緩存。若設(shè)為true,將會消耗更多的內(nèi)存,要求持續(xù)時間更久的初始化過程,但表現(xiàn)更好。默認(rèn)為true。  
  
android:clipChildren// 設(shè)置子View是否受限于在自己的邊界內(nèi)繪制。若設(shè)為false,當(dāng)子View所占用的空間大于邊界時可以繪制在邊界外。默認(rèn)為true。  
  
android:clipToPadding//定義布局間是否有間距。默認(rèn)為true。  
  
android:descendantFocusability// 定義當(dāng)尋找一個焦點(diǎn)View的時候,ViewGroup與其子View之間的關(guān)系??蛇x項(xiàng)為:  
//(1)beforeDescendants       ViewGroup會比其子View更先獲得焦點(diǎn);  
//(2)afterDescendants           只有當(dāng)無子View想要獲取焦點(diǎn)時,ViewGroup才會獲取焦點(diǎn);  
//(3)blockDescendants         ViewGroup會阻止子View獲取焦點(diǎn)  
  
android:layoutAnimation//定義當(dāng)ViewGroup第一次展開時的動畫效果,也可人為地在第一次展開后調(diào)用。  
  
android:persistentDrawingCache// 定義繪圖緩存的持久性。有如下可選項(xiàng):  
//(1)none                    當(dāng)使用過后不保留繪圖緩存  
//(2)animation    在layout animation之后保留繪圖緩存  
//(3)scrolling    在Scroll操作后保留繪圖緩存  
//(4)all     always保留繪圖緩存

4.繼承自View的XML屬性

   太多了………………饒過我吧

五、常用public方法

      1.add/remove  方法

void addFooterView(View v)//增加一個固定在列表底部的View,參數(shù) v為欲添加的視圖  
  
void addFooterView(View v,Object data,boolean isSelectable)//增加一個固定在列表底部的View,參數(shù) v為欲添加的視圖,data為與View綁定的數(shù)據(jù),isSelectable設(shè)置是否可選  
  
  
void addHeaderView(View v)//增加一個固定在列表頂部的View,參數(shù) v為欲添加的視圖  
  
void addHeaderView(View v,Object data,boolean isSelectable)//增加一個固定在列表頂部的View,參數(shù) v為欲添加的視圖,data為與View綁定的數(shù)據(jù),isSelectable設(shè)置是否可選  
  
boolean removeFooterView(View v)//去除一個之前添加的FooterView,參數(shù)v為欲刪除的視圖,若成功刪除則返回true  
  
boolean removeHeaderView(View v)//去除一個之前添加的HeaderView,參數(shù)v為欲刪除的視圖,若成功刪除則返回true

 2.響應(yīng)事件方法

boolean OnKeyDown(int keyCode,KeyEvent event)//當(dāng)按下鍵時響應(yīng)  
  
boolean OnKeyMultiple(int keyCode,int repeatCount,KeyEvent event)//重復(fù)按下鍵時響應(yīng),repeatCount為按下次數(shù)  
  
boolean OnKeyUp(int keyCode,KeyEvent event)//當(dāng)鍵被釋放時響應(yīng)

3.get方法

ListAdapter getAdapter()//返回ListView正在使用的Adapter  
  
Drawable getDivider()//以Drawable形式返回divider  
  
int getDividerHeight()//這個……真不想解釋了  
  
int getFooterViewCount()//返回FooterView的個數(shù),若無返回0  
  
int getHeaderViewCount()//返回HeaderView的個數(shù),若無返回0  
  
boolean getItemsCanFocus()//返回是否有可獲得焦點(diǎn)的條目  
  
int getMaxScrollAmount()//The maximum amount a list view will scroll in response to an arrow event.(求翻譯)  
  
Drawable getOverscrollFooter()//返回繪制在所有條目之下的drawable  
  
Drawable getOverscrollHeader()//返回繪制在所有條目之上的drawable

 4.set方法

void setAdapter(ListAdapter adapter)//為ListView綁定Adapter  
  
void setCacheColorHint(int color)//參數(shù)為0時,將CacheColor設(shè)為透明;參數(shù)非零時,指定一種顏色作為ListView的背景  
  
void setDivider(Drawable divider)//為ListView中每個條目之間設(shè)定一個Divider  
  
void setDividerHeight(int height)//設(shè)定Divider的高度,單位為pixel  
  
void setFooterDividerEnabled(boolean footDividerEnabled)//設(shè)置FooterView之間的Dividers是否可用  
  
void setHeaderDividerEnabled(boolean headDividerEnabled)//設(shè)置HeaderView之間的Dividers是否可用  
  
void setItemsCanFocus(boolean itemsCanFocus)//設(shè)置是否包含可獲取焦點(diǎn)的Item  
  
void setOverscrollFooter(Drawable footer)//設(shè)置一個當(dāng)滾動時或ListView未填滿屏幕時能顯示在ListView下方的Drawable  
  
void setOverscrollHeader(Drawable header)//設(shè)置一個當(dāng)滾動時能顯示在ListView上方的Drawable  
  
void setRemoteViewAdapter(Intent intent)//為此AbsListView設(shè)置一個通過intent連接到RemoteViewsService而提供的遠(yuǎn)程視圖適配器  
  
void setSelection(int position)//設(shè)置被選中的條目。如果參數(shù)小于0,則position為0的條目將被選中  
  
void setSelectionAfterHeaderView()//選中headerView下方的第一條條目

網(wǎng)頁題目:ListView的屬性及方法詳解
瀏覽地址:http://muchs.cn/article22/jiodjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、做網(wǎng)站、企業(yè)建站App開發(fā)、商城網(wǎng)站、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管