ITEEDU


ViewParent

版本:Android 3.0 r1

 

结构

继承关系

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

 

类概述

定义了一些作为View父类,它所具有的功能(译者注:也可以理解为方法)。当一个View与父类交互时,就可以用到这些API了。(译者注:Android中子控件维系一个ViewParent对象,该对象象征着整个控件树的管理者,子控件产生影响整个控件树的事件时,会通知到ViewParent,ViewParent会将其转换成一个自顶向下的事件,分发下去。参照onInterceptTouchEvent(MotionEvent)来拦截触屏事件。

         该父类需要把该方法传递给它的父类。同时也要服从触屏的请求(也就是说,只有在按上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)

         显示该视图或者其祖先类的上下文菜单。

         大多数情况下,子类不需要重写该方法。但是,当该子类被直接加到窗口管理器上时(例如: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。

 

补充

         文章精选

                   [推荐]深入Android 【六】 —— 界面构造

                   Android UI Event Listener