Android 中文 API(123) —— AbsListView(二)

public void setOverScrollMode (int mode)html

爲視圖設置過滾動模式。有效的過滾動模式有 OVER_SCROLL_ALWAYS(默認值)、 OVER_SCROLL_IF_CONTENT_SCROLLS(視圖內容大於容器時容許過滾動)、 OVER_SCROLL_NEVER. 只有當視圖能夠滾動時,才能夠設置視圖的過滾動模式.java

參數android

mode       視圖的新的過滾動模式canvas

 

public void setRecyclerListener (AbsListView.RecyclerListener listener)數組

設置當視圖被放入回收器等待被重用時獲得通知的回收監聽器。 該監聽器用於釋放關聯到視圖的資源。緩存

參數安全

listener  視圖被放入回收器時收到通知的回收監聽器。ide

參見函數

    AbsListView.RecycleBin佈局

    AbsListView.RecyclerListener

 

public void setScrollIndicators (View up, View down)

(譯者注:用途參見這裏:how to define scrollbar's thumb Drawables from java code?)

 

public void setScrollingCacheEnabled (boolean enabled)

啓用或中止在滾動時使用子視圖的繪圖緩存。默認爲使用繪圖緩存,這會佔用更多的內存。 當啓用滾動緩存時,首次滾動後會保留緩存。你能夠經過調用 setChildrenDrawingCacheEnabled(boolean) 手動清除緩存。

參數

enabled 啓用滾動緩存時爲真,不然爲假。

參見

    isScrollingCacheEnabled()

    setDrawingCacheEnabled(boolean)

 

public void setSelector (Drawable sel)

設置用於將當前選擇條目設置爲高亮的可繪製對象。

 

public void setSelector (int resID)

設置用於將當前選擇條目設置爲高亮的可繪製對象。

參數

resID       做爲選擇高亮的可繪製對象資源。

相關 XML 屬性

    android:listSelector

 

public void setSmoothScrollbarEnabled (boolean enabled)

當平滑滾動啓用時,滾動條把手的位置和大小基於可見條目的可見像素數來計算。 該處裏假定全部列表條目具備相同的高度。若是你使用條目高度不一樣的類表, 滾動條會在用戶滾動過程當中改變大小。爲了不這種狀況,應該禁用該特性。 當平滑滾動被禁用後,滾動條把手的大小和位置只是基於適配器中的條目數, 以及適配器中的可見條目來肯定。這樣能夠爲使用可變高條目列表的用戶, 提供穩定的滾動條。

參數

enabled 是否啓用平滑滾動。

相關 XML 屬性

    android:smoothScrollbar

參見

    setSmoothScrollbarEnabled(boolean)

 

public void setStackFromBottom (boolean stackFromBottom)

當棧從底部開始設置爲真時,列表從底部開始向上填充視圖。

參數

stackFromBottom 爲真時,視圖內容固定於底部;爲假時,固定在頂部。

 

public void setTextFilterEnabled (boolean textFilterEnabled)

啓用或禁用輸入過濾窗口。如啓用,在視圖具備焦點時,將會過濾子對象,以匹配用戶輸入。 注意,視圖使用的適配器必須實現了Filterable接口。

參數

textFilterEnabled    爲真表示啓用輸入過濾,反之則爲假。

參見

    Filterable

 

public void setTranscriptMode (int mode)

將列表或網格設置爲跳轉模式。該模式下,列表或網格老是滾動到底部,以顯示新條目。

參數

mode       設置的跳轉模式。

參見

    TRANSCRIPT_MODE_DISABLED

    TRANSCRIPT_MODE_NORMAL

    TRANSCRIPT_MODE_ALWAYS_SCROLL

 

public boolean showContextMenuForChild (View originalView)

爲指定的視圖或者其父類顯示上下文菜單。

大部分狀況下,子類不須要重寫該方法。可是,若是直接將子類添加到窗口管理器(例如:使用 addView(View, android.view.ViewGroup.LayoutParams) 函數),此時就須要重寫來顯示上下文菜單。

參數

originalView  首先顯示的上下文菜單的原始視圖.

返回值

    若是顯示了上下文菜單返回真。

 

public void smoothScrollBy (int distance, int duration)

平滑滾動 distance 個像素,持續 duration 毫秒。

參數

distance           滾動的距離,像素數。

duration           滾動動畫持續的時間,毫秒。

 

public void smoothScrollToPosition (int position, int boundPosition)

平滑滾動到指定的適配器位置。視圖會滾動到指定位置顯示出來,若是滾動會使 boundPosition 滾動到視圖外,滾動會先被中止。

參數

position 要滾動到的適配器位置。

boundPosition         若是要將這個適配器位置移出視圖,滾動會中止。

 

public void smoothScrollToPosition (int position)

平滑滾動到指定的適配器位置。視圖會滾動到指定位置顯示出來。

參數

position 要滾動到的適配器位置。

 

public boolean verifyDrawable (Drawable dr)

若是你的視圖子類顯示本身的可繪製對象,他應該重寫此方法併爲本身的每一個可繪製對象返回真。該函數容許爲這些可繪製對象準備動畫效果。

重寫此方法時,要保證調用其父類的該方法。

參數

dr    待校驗的可繪製對象。若是是你顯示的對象之一,返回真;不然返回調用父類的返回值。

返回值

    boolean 若是可繪製對象已經顯示在視圖上了,返回真;不然返回假,不容許動畫效果。

 

受保護方法

protected boolean checkLayoutParams (ViewGroup.LayoutParams p)

         (譯者注:檢測是否是AbsoluteLayout.LayoutParams的實例)

 

protected int computeVerticalScrollExtent ()

計算滾動條把手在縱向滾動範圍內佔用的幅度。該值用於計算滾動條把手在滾動條滑道中的長度。

範圍使用與 computeVerticalScrollRange() computeVerticalScrollOffset() 相同的任意單位。

默認的長度是視圖的可繪製高度。

返回值

    滾動條把手在縱向滾動範圍內佔用的幅度。

 

protected int computeVerticalScrollOffset ()

計算滾動條把手在縱向滾動範圍內的位置。該值用於計算滾動條把手在滾動條滑道中的位置。

範圍使用與 computeVerticalScrollRange() computeVerticalScrollExtent() 相同的任意單位。

默認位置是視圖的滾動條位置。

返回值

    滾動條把手的縱向位置

 

protected int computeVerticalScrollRange ()

計算滾動條表明的縱向範圍。

範圍使用與 computeVerticalScrollExtent() computeVerticalScrollOffset() 相同的任意單位。

返回值

    縱向滾動條表明的整個縱向範圍。

    默認縱向範圍時視圖的繪製高度。

 

protected void dispatchDraw (Canvas canvas)

調用此方法來繪出子視圖。可被衍生類重寫,以便在其子項被畫出以前取得控制權。此方法由 draw 方法在繪製子視圖時調用。子類能夠重寫該方法,在繪製其子視圖以前得到控制權。(可是在繪製其自身的視圖以後。)

參數

canvas    繪製視圖的畫布。

 

protected void dispatchSetPressed (boolean pressed)

爲視圖的全部子視圖調用 setPressed 方法。

參數

pressed 新的按下狀態。

 

protected void drawableStateChanged ()

在視圖狀態的變化影響到所顯示可繪製對象的狀態時調用該方法。

覆蓋該方法時,要確保調用了父類的該方法。

 

protected ViewGroup.LayoutParams generateLayoutParams (ViewGroup.LayoutParams p)

基於提供的佈局參數返回一組安全的佈局參數集合。當傳入 ViewGroup 的視圖的參數沒有經過 checkLayoutParams(android.view.ViewGroup.LayoutParams) 的檢測時,調用該方法。該方法會返回適合 ViewGroup 的新的佈局參數,可能從指定的佈局參數中複製適當的屬性。

參數

p      要轉換爲適合於 ViewGroup 的佈局參數的集合.

返回值

    ViewGroup.LayoutParams 或其子類的實例。

 

protected float getBottomFadingEdgeStrength ()

返回底部漸變邊緣的強度或密集度。強度的值介於0.0(無漸變)到1.0(全漸變)之間。缺省實現只返回0.01.0,而不返回中間值。子類應該重載此方法來給滾動時提供更平滑的漸變過程。

返回值

    底部漸變的強度,即介於0.0f1.0f之間的浮點值。

 

protected ContextMenu.ContextMenuInfo getContextMenuInfo ()

若是視圖要向上下文菜單加入額外信息,就應該實現該方法。返回的結果做爲 onCreateContextMenu(ContextMenu, View, ContextMenuInfo) 回調函數的參數。

返回值

    上下文菜單要顯示的條目的額外信息.該信息會根據視圖子類的不一樣而變化。

 

protected float getTopFadingEdgeStrength ()

返回頂部漸變邊緣的強度或密集度。強度的值介於0.0(無漸變)到1.0(全漸變)之間. 缺省實現只返回0.01.0,而不返回中間值。子類應該重載此方法來給滾動時提供更平滑的漸變過程。

返回值

    頂部漸變的強度,即介於0.0f1.0f之間的浮點值。

 

protected void handleDataChanged ()

 

 

protected boolean isInFilterMode ()

指示視圖是否處於過濾狀態。過濾狀態在用戶在鍵盤上輸入信息時啓動。

返回值

    若是視圖處於過濾狀態,返回真;不然返回假。

 

protected void layoutChildren ()

子類必須重寫此方法,覺得其子視圖佈局。

 

protected void onAttachedToWindow ()

當視圖附加到窗體上時調用該方法。在這個時點,視圖擁有了用於顯示的表面,將開始繪製。注意,系統保證在調用onDraw(Canvas) 以前調用該方法,但可能在調用 onDraw(Canvas) 以前的任什麼時候刻,包括調用 onMeasure(int, int) 以前或以後。

 

protected int[] onCreateDrawableState (int extraSpace)

爲當前視圖生成新的 Drawable 狀態時發生。當視圖系統檢測到緩存的可繪製對象失效時,調用該方法。你可使用 getDrawableState() 方法從新取得當前的狀態。

參數

extraSpace      若是爲非零,該值爲你要在返回值的數組中存放的你本身的狀態信息的數量。

返回值

    返回保存了視圖的當前 Drawable 狀態的數組。

 

protected void onDetachedFromWindow ()

將視圖從屏幕上分離的時候調用該方法。這個時點視圖已經不具備可繪製部分。

 

protected void onDisplayHint (int hint)

獲得視圖是否處於顯示狀態的提示信息。例如,當視圖移出屏幕時,他收到視圖沒有顯示的提示 信息。應用程序不該該依靠該回調函數,不保證必定會收到該提示。

參數

hint          關於視圖是否處於顯示狀態:VISIBLE INVISIBLE

 

protected void onFocusChanged (boolean gainFocus, int direction, Rect previouslyFocusedRect)

當視圖的焦點改變時調用。由定向導航致使的焦點變動時, direction previouslyFocusedRect 提供了焦點是從那裏來的進一步信息。

參數

gainFocus        若是視圖具備焦點,值爲真;不然爲假。

direction          當調用 requestFocus() 爲該視圖設置焦點時,該值爲焦點移動的方向。其值爲 FOCUS_UPFOCUS_DOWN FOCUS_LEFT 或者 FOCUS_RIGHT。當使用無參數的 requestFocus() 時,可能無值。

previouslyFocusedRect             失去焦點的視圖的矩形座標,使用該視圖的座標系統.若是指定了, 它將傳入能夠知道焦點來自哪裏的詳細信息(做爲對 direction 的補充)。不然,其值爲 null

 

protected void onLayout (boolean changed, int l, int t, int r, int b)

子類不要重載此方法,如須要請重載 layoutChildren() 來代替。

參數

changed           是否爲視圖設置了新的大小和位置。

l       相對於父視圖的左側的位置。

t      相對於父視圖的頂部的位置。

r      相對於父視圖的右側的位置。

b      相對於父視圖的底部的位置。

 

protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec)

評估視圖及其內容,以決定其寬度和高度.此方法由 measure(int, int) 調用,子類能夠重載以提供更精確、更有效率的衡量其內容尺寸的方法。

約定: 覆蓋該方法時,必須調用 setMeasuredDimension(int, int) 方法來保存評估結果的視圖的寬度和高度.若是忘記將致使 measure(int, int) 方法拋出IllegalStateException異常.要有效的利用父類的 onMeasure(int, int)方法。

基類測量的是背景的大小,除非 MeasureSpec 容許超過背景.子類應該重寫 onMeasure(int, int) 方法,覺得其內容提供更適合的大小。

若是重寫了該方法,子類要確保其高度和寬度大於等於視圖的最小高度和寬度. getSuggestedMinimumHeight() getSuggestedMinimumWidth()

參數

widthMeasureSpec         父視圖要求的橫向空間大小.該要求由 View.MeasureSpec 進行了編碼處理。

heightMeasureSpec        父視圖要求的縱向空間大小.該要求由 View.MeasureSpec 進行了編碼處理。

 

protected void onOverScrolled (int scrollX, int scrollY, boolean clampedX, boolean clampedY)

overScrollBy(int, int, int, int, int, int, int, int, boolean) 調用,用於響應過滾動操做。

參數

scrollX     新的 X 軸滾動位置,以像素爲單位。

scrollY     新的 Y 軸滾動位置,以像素爲單位。

clampedX        scrollX 被限制在過滾動邊界時,爲真。

clampedY        scrollY 被限制在過滾動邊界時,爲真。

 

protected void onSizeChanged (int w, int h, int oldw, int oldh)

佈局時該視圖的大小發生改變時調用該方法.若是是剛加入的視圖,變動前的值爲 0

參數

w     視圖的當前寬度。

h      視圖的當前高度。

oldw        視圖變動前的寬度。

oldh         視圖變動前的高度。

 

補充

         文章精選

                   android UI 優化之 AbsListView之深度優化

 

 


AbsListView.LayoutParams

譯者署名: cnmahj

譯者連接: http://android.toolib.net/blog/

版本:Android 2.3 r1

 

結構

繼承關係

public static class AbsListView.LayoutParams extends ViewGroup.LayoutParams

        

java.lang.Object

         android.view.ViewGroup.LayoutParams

               android.widget.AbsListView.LayoutParams

 

概述

         AbsListView 擴展了 LayoutParams 以提供空間來保存試圖類型。

 

 

AbsListView.OnScrollListener

譯者署名: cnmahj

譯者連接: http://android.toolib.net/blog/

版本:Android 2.3 r1

 

結構

繼承關係

public static class AbsListView.OnScrollListener

        

android.widget.AbsListView.OnScrollListener

 

概述

         爲了在列表或網格滾動時執行回調函數而定義的接口。

 

常量

public static final int SCROLL_STATE_FLING

用戶以前經過觸控滾動並執行了快速滾動。滾動動畫正滑向中止點。

常量值: 2 (0x00000002)

 

public static final int SCROLL_STATE_IDLE

視圖沒有滾動。注意,使用軌跡球滾動時,在滾動中止以前,一直處於空閒狀態。

常量值: 0 (0x00000000)

 

public static final int SCROLL_STATE_TOUCH_SCROLL

用戶經過觸控滾動,而且手指沒有離開屏幕。

常量值: 1 (0x00000001)

 

公共方法

  public abstract void onScroll (AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount)

當列表或網格的滾動已經完成時調用的回調函數。會在滾動完成後調用。

參數

view         報告滾動狀態的對象視圖。

firstVisibleItem       第一個可見單元格的索引(若是 visibleItemCount == 0 則忽略該參數)。

visibleItemCount    可見單元格數。

totalItemCount       列表適配器中的條目數。

 

public abstract void onScrollStateChanged (AbsListView view, int scrollState)

當列表視圖或網格視圖正在滾動是執行的回調函數。若是視圖正在滾動, 該方法會在渲染下一幀以前調用該方法。就是說,會在調用任何 getView(int, View, ViewGroup)方法以前調用。

參數

view         報告滾動狀態的對象視圖。

scrollState       當前滾動狀態。值爲 SCROLL_STATE_IDLE SCROLL_STATE_TOUCH_SCROLLSCROLL_STATE_IDLE

 

 

AbsListView.RecyclerListener

譯者署名: cnmahj

譯者連接: http://android.toolib.net/blog/

版本:Android 2.3 r1

 

結構

繼承關係

public static interface AbsListView.RecyclerListener

        

android.widget.AbsListView.RecyclerListener

 

概述

         RecyclerListener 是用於接收視圖被移動到待回收堆中時的消息的監聽器。該監聽器用於釋放分配到被放入回收站的視圖的資源。

 

公共方法

  public abstract void onMovedToScrapHeap (View view)

指示指定的視圖被移動到待回收堆中。視圖再也不顯示在屏幕上,關聯到該視圖的貴重的資源應該被釋放。

相關文章
相關標籤/搜索