- android
- android.accessibilityservice
- android.accounts
- android.content
- android.database.sqlite
- android.graphics
- android.location
- android.media
- android.net
- android.os
- android.text
- android.view
- android.view.inputmethod
- android.widget
- AbsListView
- AbsoluteLayout
- AbsSeekBar
- AbsSpinner
- AdapterView
- AnalogClock
- BaseAdapter
- BaseExpandableListAdapter
- Button
- CheckBox
- CheckedTextView
- Checkable
- Chronometer
- CompoundButton
- CursorAdapter
- CursorTreeAdapter
- DatePicker
- DialerFilter
- DigitalClock
- EditText
- Filter
- Filter.FilterListener
- Filter.FilterResults
- ExpandableListAdapter
- Filterable
- Gallery
- Gallery.LayoutParams
- GridView
- GridLayout
- RadioGroup
- ImageView
- HorizontalScrollView
- ImageButton
- ImageSwitcher
- FilterQueryProvider
- ListAdapter
- ListView
- MediaController
- QuickContactBadge
- RadioButton
- RatingBar
- RelativeLayout
- RemoteViews
- ResourceCursorAdapter
- ResourceCursorTreeAdapter
- Scroller
- ScrollView
- SearchView
- SeekBar
- SeekBar.OnSeekBarChangeListener
- SimpleAdapter
- SimpleCursorAdapter
- SimpleCursorTreeAdapter
- SimpleExpandableListAdapter
- SlidingDrawer
- Spinner
- SpinnerAdapter
- WrapperListAdapter
- TabHost
- TabHost.TabSpec
- TextView
- TimePicker
- Toast
- TableLayout
- TableRow
- TableRow.LayoutParams
- TabWidget
- TextSwitcher
- ToggleButton
- TwoLineListItem
- VideoView
- ViewAnimator
- ViewFlipper
- ViewSwitcher
- ZoomButtonsController
- ZoomButton
- ZoomControls
- dalvik.system
ViewParent
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 会将其转换成一个自顶向下的事件,分发下去。参照 这里 )
公共方法
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 如果需要重写该方法,可以遵循以下几点:
l child 必须是该 group 的直接子类
l rectangle 要是 child 中的坐标
ViewGroup 要重写该方法,要坚持几下几点:
l 如果 rectangle 规定的区域已经是可见的,那么该方法将什么都不会改变
l 只有在 rectangle 区域可见时,该视图才会有滚动条
参数
child 以起请求的直接子视图
rectangle 需要显示到屏幕上的区域范围
immediate true 禁止有滚动 false 则有
返回值
处理请求操作后是否有滚动
public abstract void requestDisallowInterceptTouchEvent (boolean disallowIntercept)
让父类不用 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。
补充
文章精选
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论