在實際項目中,ListView是頻繁用到的控件之一,在開發過程中總結一些有助於開發的知識:
ListItem之間的分隔線
android:divider="#ff0000" 可以是顏色和圖片
android:dividerHeight="1px" 要顯示分隔線,分隔線的高度必須大於0
android:headerDividersEnabled="true" headview下是否加分隔線
android:footerDividersEnabled="true" footview是否加分隔線
ListView的滾動塊
滾動塊實際上是所可以用於所有view,有些屬性是通用的,有些實行是listView特有的。
android:scrollbars="vertical" 顯示垂直、水平滾動塊
android:verticalScrollbarPosition="left"
//垂直的scrollBar是顯示在左邊或者右邊
android:scrollbarStyle="insideOverlay"
inside表示顯示在padding區域的內側,outside表示顯示在padding區域的外側。Inset表示將自動增加padding以顯示ScrollBar(這意味着內容區域將縮小),Overlay表示不會增加padding以顯示ScrollBar,而是浮動在內容上面(可能會遮住內容)
scrollBar的淡出效果
android:fadeScrollbars //scrollbar不滾動隱藏
android:scrollbarDefaultDelayBeforeFade
android:scrollbarFadeDuration//淡出的時間
ScrollBar由兩部分組成,一個是Track(滑道),一個是Thumb(滑塊),其定製的屬性爲:
android:scrollbarThumbHorizontal="@drawable/ic_launcher"
android:scrollbarThumbVertical="@drawable/ic_launcher"
android:scrollbarTrackHorizontal="@drawable/ic_launcher"
android:scrollbarTrackVertical="@drawable/ic_launcher"
android:scrollbarSize="0dp"
快速滾動條
android:fastScrollEnabled="true"
頭尾滑動效果
滑過Listview頂部和底部的畫面效果
android:overScrollHeader="@drawable/ic_launcher"
android:overScrollFooter="@drawable/ic_launcher"
android:overScrollMode="never" ifContentScrolls、always
顯示的位置
android:stackFromBottom="true" 我們看到的視圖將是Listview最底部的數據
選中效果
android:drawSelectorOnTop="true" 選中的效果是顯示在上面還是下面,上面會覆蓋文字
選擇模式
android:choiceMode="singleChoice" 有四個值,聯想出來後很好理解
繪圖的質量
android:drawingCacheQuality
設置繪圖時半透明質量。有以下值可設置:auto(默認,由框架決定)/high(高質量,使用較高的顏色深度,消耗更多的內存)/low(低質量,使用較低的顏色深度,但是用更少的內存)。
ListView事件響應情況
android:duplicateParentState
如果設置此屬性,將直接從父容器中獲取繪圖狀態(光標,按下等)。 見下面代碼部分,注意根據目前測試情況僅僅是獲取繪圖狀態,而沒有獲取事件,也就是你點一下LinearLayout時Button有被點擊的效果,但是不執行點擊事件
android:longClickable
設置是否響應長按事件.
邊框漸變
android:fadingEdge
設置拉滾動條時 ,邊框漸變的放向。none(邊框顏色不變),horizontal(水平方向顏色變淡),vertical(垂直方向顏色變淡)。參照fadingEdgeLength的效果圖
android:fadingEdgeLength
設置 邊框漸變的長度。
佈局調整
android:fitsSystemWindows
設置佈局調整時是否考慮系統窗口(如狀態欄)