天天看點

Android 3.0 r1 API中文文檔(105) —— ViewParent

一、結構

public interface ViewParent        

android.view.ViewParent 

間接子類

AbsListView, AbsSpinner, AbsoluteLayout, AdapterView<T extends Adapter>, AppWidgetHostView, DatePicker, DialerFilter, ExpandableListView, FrameLayout, Gallery, GestureOverlayView, GridView, HorizontalScrollView, ImageSwitcher, LinearLayout, ListView, MediaController, RadioGroup, RelativeLayout, ScrollView, SlidingDrawer, Spinner, TabHost, TabWidget, TableLayout, TableRow, TextSwitcher, TimePicker, TwoLineListItem, ViewAnimator, ViewFlipper, ViewGroup, ViewSwitcher, WebView, ZoomControls

二、類概述

三、公共方法

  public abstract void bringChildToFront (View child)

           把該視圖置于其他所有子視圖之上。(譯者注:如在FrameLayout中切換被疊放的視圖)

  參數

                   child         需要改變順序的子視圖        

  public abstract void childDrawableStateChanged (View child)

           當子視圖的drawable狀态發生變化的時候,調用該方法。

                            child         drawable狀态發生變化的子視圖 

  public abstract void clearChildFocus (View child)

           當子視圖失去焦點的時候調用該方法。

                   child         失去焦點的子視圖           

  public abstract void createContextMenu (ContextMenu menu)

           如果該指定的ContextMenu需要增加菜單,則會由它的父類去填充(同時會向上遞歸)。

                   menu       需要填充的菜單                  

  public abstract View focusSearch (View v, int direction)

           在指定的方向找到最近的View來切換焦點。

                   v              目前視圖

                   direction    FOCUS_UP, FOCUS_DOWN, FOCUS_LEFT, 與FOCUS_RIGHT中取值 

  public abstract void focusableViewAvailable (View v)

           通知父類一個新的并且能夠取得焦點的子視圖可以使用了。用于處理從沒有可取得焦點的視圖到出現第一個可以取得焦點的視圖的轉變。

                   v  新出現的可以取得焦點的視圖

  public abstract boolean getChildVisibleRect (View child, Rect r, Point offset)      

  public abstract ViewParent getParent ()

           如果存在父視圖,則傳回該視圖;否則傳回NULL。

  傳回

                   如果不存在父視圖,則傳回null 

  public abstract void invalidateChild (View child, Rect r)

           重繪目前child指定的範圍。

                   child         目前視圖

                   r               child中無效的範圍區域

  public abstract ViewParent invalidateChildInParent (int[] location, Rect r)

           重繪目前child的全部或者一部分指定範圍。location是長度為2的整形數組,兩個數分别為child左邊和上邊的坐标。如果父視圖中指定的區域r是無效的,則傳回該ViewParent的父視圖。如果父視圖中指定區域是有效的或者父視圖不存在,則傳回null。如果方法傳回對象不為空,則需要把location數組中的數值更新為傳回的ViewParent的左邊和上邊的坐标值。

  location   長度為2的整形數組,資料為需要失效的child左邊和上邊的坐标值

                   ViewParent,如果不存在父視圖,則傳回null

  public abstract boolean isLayoutRequested ()

           傳回該視圖父類是否有layout控件被請求。

                   true需要,false 不需要

  public abstract void recomputeViewAttributes (View child)

           通知父類和子類所有的View屬性需要重新生成。

                   child         改變屬性的View

  public abstract void requestChildFocus (View child , View focused)

           當需要轉換子類焦點時調用。

  child         該ViewParent需要取得焦點的視圖。該視圖包含目前聚焦視圖。但事實上也不一定會獲得焦點

  focused    child的一個有焦點的子視圖 

  public abstract boolean requestChildRectangleOnScreen (View child, Rect rectangle, boolean immediate)

           當該child視圖需要顯示在螢幕特定位置時調用。ViewGroup如果需要重寫該方法,可以遵循以下幾點:

  * child必須是該group的直接子類

  * rectangle要是child中的坐标

    ViewGroup要重寫該方法,要堅持幾下幾點:

  * 如果rectangle規定的區域已經是可見的,那麼該方法将什麼都不會改變

  * 隻有在rectangle區域可見時,該視圖才會有滾動條

  child                  以起請求的直接子視圖

  rectangle          需要顯示到螢幕上的區域範圍

                       immediate        true禁止有滾動 false 則有

  傳回值

                   處理請求操作後是否有滾動

  public abstract void requestDisallowInterceptTouchEvent (boolean disallowIntercept)

           該父類需要把該方法傳遞給它的父類。同時也要服從觸屏的請求(也就是說,隻有在按上Up或者clear後才能清除該辨別)。

  disallowIntercept    true表示child不讓父類攔截觸屏事件 

  public abstract void requestLayout ()

           當父視圖的一個child的Layout控件失效時調用。該方法将會重新請求一個Layout控件。

  public abstract void requestTransparentRegion (View child)

           當一個child希望視圖層去收集透明區域并報告給視窗排序服務時調用。例如SurfaceView可以用這個接口來提高接口性能。如果在目前層次沒有視圖,沒有必要用該方法優化,否則有可能會輕微影響該層的性能。

  child          要求透明區域進行處理的視圖

  public abstract boolean showContextMenuForChild (View originalView)

           顯示該視圖或者其祖先類的上下文菜單。

  originalView     需要顯示上下文菜單的視圖

                   顯示上下文菜單時傳回true

    public abstract ActionMode startActionModeForChild (View originalView, ActionMode.Callback callback)      Since: API Level 11

  為指定視圖啟動一個操作模式。

  originalView  操作模式首頁調用的源視圖

  callback          處理操作模式生命周期的回調函數

如果新的操作模式已經啟動,傳回該操作模式,否則傳回null。

四、補充 

    文章精選

繼續閱讀