现在的位置: 首页 > 综合 > 正文

ViewGround试图组

2013年08月20日 ⁄ 综合 ⁄ 共 1185字 ⁄ 字号 评论关闭

Android在屏幕中控件的组织上,可以将各个视图(控件)组成一个视图组(ViewGroup),视图组是一个包含了其他视图的视图。

1.视图组(ViewGroup抽象类)

android.view包中ViewGroup类继承了View,因此它本身也具有View的特性。ViewGroup主要的功能在于它可以包含其他控件,作为其他控件的容器。

ViewGroup实现了android.view包中的ViewParent接口,这个类表示一个可以作为其他的View的容器的职责。

ViewGroup也实现了android.view包中的ViewManager接口,因此包含ViewManager中的以下几个方法:

public abstract void addView(View view, ViewGroup.LayoutParams params)

public abstract void removeView(View view)

public abstract void updateViewLayout(View view, ViewGroup.LayoutParams params)

addView以View作为参数,用于将这个View增加为当前视图组的“孩子”;removeView用于将一个View从视图组中移除;updateViewLayout用于更新某个View的布局。

ViewGroup.OnHierarchyChangeListener是一个接口,用于监听ViewGroup中的View的层次变化。这个接口中包含了两个监听方法:

public abstract void onChildViewAdded (View parent, View child)

public abstract void onChildViewRemoved (View parent, View child)

实现一个OnHierarchyChangeListener接口后,这两个方法可以监听包括ViewGroup(包括其继承者)之中的增加和删除孩子的情况。通过ViewGroup的setOnHierarchyChangeListener方法可以将其设置给一个ViewGroup。

ViewGroup是一个抽象类,其中包含了以下的一个抽象方法:

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

ViewGroup中的onLayout方法将在ViewGroup为它的孩子们分配尺寸和位置的时候被调用,在这个类的实现中,需要调用每一个控件的布局方法为其布局。

提示:onLayout在View中是一个public的方法,在ViewGroup为protected类型,并且为abstract,由于这个方法在ViewGroup中没有实现,因此ViewGroup本身不可以直接使用

抱歉!评论已关闭.