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

前言html

  本章內容是android.view.ViewParent,版本爲Android 3.0 r1,翻譯來自"逝憶流緣",歡迎你們訪問他的微波:"http://t.qq.com/pansonphy",再次感謝"逝憶流緣" !期待你加入Android API 中文的翻譯,聯繫我over140@gmail.com。android

 

聲明數組

  歡迎轉載,但請保留文章原始出處:)
 ide

    農民伯伯:http://over140.blog.51cto.com/函數

    Android中文翻譯組: http://goo.gl/6vJQl


正文性能

  1、結構優化

 

public interface ViewParentui

        

android.view.ViewParentspa

 

間接子類翻譯

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

 

 

  2、類概述

    定義了一些做爲View父類,它所具備的功能(譯者注:也能夠理解爲方法)。當一個View與父類交互時,就能夠用到這些API了。(譯者注:Android中子控件維繫一個ViewParent對象,該對象象徵着整個控件樹的管理者,子控件產生影響整個控件樹的事件時,會通知到ViewParentViewParent會將其轉換成一個自頂向下的事件,分發下去。參照這裏
 

 

  3、公共方法

 

  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左邊和上邊的座標值

                   r               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)

           讓父類不用onInterceptTouchEvent(MotionEvent)來攔截觸屏事件。

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

  參數

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

 

  public abstract void requestLayout ()

           當父視圖的一個childLayout控件失效時調用。該方法將會從新請求一個Layout控件。

 

  public abstract void requestTransparentRegion (View child)

           當一個child但願視圖層去收集透明區域並報告給窗口排序服務時調用。例如SurfaceView能夠用這個接口來提升接口性能。若是在當前層次沒有視圖,沒有必要用該方法優化,不然有可能會輕微影響該層的性能。

  參數

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

 

  public abstract boolean showContextMenuForChild (View originalView)

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

           大多數狀況下,子類不須要重寫該方法。可是,當該子類被直接加到窗口管理器上時(例如:addView(View, android.view.ViewGroup.LayoutParams)),就會重寫該方法,並顯示上下文菜單。

  參數

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

  返回

                   顯示上下文菜單時返回true

 

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

  爲指定視圖啓動一個操做模式。

  大多數狀況下,一個子類並不須要從新此類。可是,若是子類是直接添加到窗口管理器(例如,addView(View, android.view.ViewGroup.LayoutParams)),那麼應重寫此方法並啓動操做模式。(譯者注:關於ActionMode參見這裏

  參數

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

  callback          處理操做模式生命週期的回調函數

  返回值

         若是新的操做模式已經啓動,返回該操做模式,不然返回 null

 

 

  4、補充
 

 

    文章精選

                   [推薦]深刻Android 【六】 —— 界面構造

                   Android UI Event Listener

相關文章
相關標籤/搜索