参阅:http://android.xsoftlab.net/reference/android/view/ViewGroup.html
public abstract class
ViewGroup
extends View
implements ViewParent ViewManager
Added in API level 1
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
已知直接子类
AbsoluteLayout,
AdapterView
CoordinatorLayout,
DrawerLayout,
FragmentBreadCrumbs,
FrameLayout,
GridLayout,
LinearLayout,
LinearLayoutCompat,
PagerTitleStrip,
RecyclerView,
RelativeLayout,
ShadowOverlayContainer,
SlidingDrawer,
SlidingPaneLayout,
SwipeRefreshLayout,
Toolbar,
TvView,
ViewPager
【概述】
ViewGroup是一个特殊的视图,可以容纳其他视图。ViewGroup是布局和视图容器的基类。
这个类还定义了布局参数的基类 ViewGroup.LayoutParams。
【嵌套类】
类 ViewGroup.LayoutParams LayoutParams用于通过视图告诉他们的父母他们想要如何布局。
ViewGroup.LayoutParams
android:layout_height
属性说明:指定视图的基本高度。 这是包含布局管理器中任何视图的必需属性。
其值可以是用于常数高度或特殊常数之一的维度(例如“12dip”)
必须是带单位的浮点型尺寸值(float),如:”14.5sp”。有效的单位包括:px(像素)、dp(密度无关像素)、sp(通常用于字体尺寸的可伸缩像素)、in(英寸)、mm(毫米)。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
可以是以下常数值之一:
fill_parent -1 视图应该和它的父对象一样大(减去填充)。
此常数从API级别8开始弃用,并由match_parent替换。
match_parent -1 视图应该和它的父对象一样大(减去填充)。 在API级别8中引入。
wrap_content -2 视图应该足够大以包围其内容(加上填充)。
对应的全局属性资源符号是layout_height。
ViewGroup.LayoutParams
android:layout_width
属性说明:指定视图的基本宽度。 这是包含布局管理器中任何视图的必需属性。
必须是带单位的浮点型尺寸值(float),如:”14.5sp”。有效的单位包括:px(像素)、dp(密度无关像素)、sp(通常用于字体尺寸的可伸缩像素)、in(英寸)、mm(毫米)。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
可以是以下常数值之一:
fill_parent -1 视图应该和它的父对象一样大(减去填充)。
此常数从API级别8开始弃用,并由match_parent替换。
match_parent -1 视图应该和它的父对象一样大(减去填充)。 在API级别8中引入。
wrap_content -2 视图应该足够大以包围其内容(加上填充)。
对应的全局属性资源符号是layout_width。
类 ViewGroup.MarginLayoutParams 支持边距的布局的子子布局信息
ViewGroup.MarginLayoutParams
android:layout_marginTop
关联方法:setMargins (int left, int top, int right, int bottom)
属性说明:在视图的顶部指定额外的空间。
必须是带单位的浮点型尺寸值(float),如:”14.5sp”。有效的单位包括:px(像素)、dp(密度无关像素)、sp(通常用于字体尺寸的可伸缩像素)、in(英寸)、mm(毫米)。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是layout_marginTop。
ViewGroup.MarginLayoutParams
android:layout_marginBottom
关联方法:setMargins (int left, int top, int right, int bottom)
属性说明:在视图的底部指定额外的空间。
必须是带单位的浮点型尺寸值(float),如:”14.5sp”。有效的单位包括:px(像素)、dp(密度无关像素)、sp(通常用于字体尺寸的可伸缩像素)、in(英寸)、mm(毫米)。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是layout_marginBottom。
ViewGroup.MarginLayoutParams
android:layout_marginLeft
关联方法:setMargins (int left, int top, int right, int bottom)
属性说明:在视图的左侧指定额外的空间。
必须是带单位的浮点型尺寸值(float),如:”14.5sp”。有效的单位包括:px(像素)、dp(密度无关像素)、sp(通常用于字体尺寸的可伸缩像素)、in(英寸)、mm(毫米)。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是layout_marginLeft。
ViewGroup.MarginLayoutParams
android:layout_marginRight
关联方法:setMargins (int left, int top, int right, int bottom)
属性说明:在视图的右侧指定额外的空间。
必须是带单位的浮点型尺寸值(float),如:”14.5sp”。有效的单位包括:px(像素)、dp(密度无关像素)、sp(通常用于字体尺寸的可伸缩像素)、in(英寸)、mm(毫米)。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是layout_marginRight。
ViewGroup.MarginLayoutParams
android:layout_marginStart
关联方法:setMarginStart(int start)
属性说明:在视图的开始侧指定额外的空间。
必须是带单位的浮点型尺寸值(float),如:”14.5sp”。有效的单位包括:px(像素)、dp(密度无关像素)、sp(通常用于字体尺寸的可伸缩像素)、in(英寸)、mm(毫米)。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是layout_marginStart。
ViewGroup.MarginLayoutParams
android:layout_marginEnd
关联方法:setMarginEnd(int end)
属性说明:在视图的结尾侧指定额外的空间。
必须是带单位的浮点型尺寸值(float),如:”14.5sp”。有效的单位包括:px(像素)、dp(密度无关像素)、sp(通常用于字体尺寸的可伸缩像素)、in(英寸)、mm(毫米)。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是layout_marginEnd。
接口 ViewGroup.OnHierarchyChangeListener 当此视图中的层次结构发生更改时要调用的回调的接口定义。
【XML属性】
API 1
android:addStatesFromChildren
属性说明:设置整个viewGroup的drawable状态是否也包含子控件的drawable状态。这用于例如使一个组在其子EditText或按钮聚焦时显示为聚焦。
必须是布尔值(boolean),“true”或“false”。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是addStatesFromChildren。
该属性用于当子控件editext或者button获得焦点时作为一个组出现使用,这样一来,将
android:addStatesFromChildren设为true,当组中的EditText或是Button获取焦点时,将Layout的Background设置成相应EditText或的Button的Drawable ,这样看上去该linear中的view是一个整体。
API 1
android:alwaysDrawnWithCache
属性说明:设置ViewGroup是否应始终使用其绘图缓存绘制其子项。 默认值为true。
必须是布尔值(boolean),“true”或“false”。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是alwaysDrawnWithCache。
API 1
android:animateLayoutChanges
属性说明:设置布局改变时是否有动画效果。布局(由添加和删除项目引起)的更改是否应导致LayoutTransition运行。 当此标志设置为true时,将在ViewGroup容器上设置默认LayoutTransition对象,并在发生这些布局更改时运行默认动画。 即默认的动画。
必须是布尔值(boolean),“true”或“false”。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是animateLayoutChanges。
API 1
android:animationCache
属性说明:定义布局动画是否应为其子代创建绘图高速缓存。 启用动画缓存消耗更多内存,并需要更长的初始化,但提供更好的性能。 默认情况下启用动画缓存。
必须是布尔值(boolean),“true”或“false”。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是animationCache。
API 1
android:clipChildren
关联方法:setClipChildren(boolean clipChildren)
属性说明:定义子视图是否被限制在其界限内绘制。 这对于将孩子的大小缩放到例如超过100%的动画是有用的。 在这种情况下,应将此属性设置为false,以允许子元素在其边界外绘制。 此属性的默认值为true。
必须是布尔值(boolean),“true”或“false”。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是clipChildren。
(图片转自农民伯伯博客)
API 1
android:clipToPadding
关联方法:setClipToPadding(boolean clipToPadding)
属性说明:设置此ViewGroup是否将其子项剪裁到其填充,并调整(但不剪裁)任何EdgeEffect到填充区域(如果存在填充)。默认为true,子项被裁剪到其父ViewGroup的填充。 仅当填充为非零时,才会启用此剪裁行为。
必须是布尔值(boolean),“true”或“false”。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是clipToPadding。
即控件的绘制区域是否在padding内,如果设置为false,那么就能绘制到padding上。
API 1
android:descendantFocusability
属性说明:控制子布局焦点获取方式。定义ViewGroup及其后代在查找视图以获取焦点时的关系。
必须是以下常量之一:
beforeDescendants viewgroup会优先其子类控件而获取到焦点
afterDescendants viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants viewgroup会覆盖(阻止)子类控件而直接获得焦点
对应的全局属性资源符号是descendantFocusability。
常用于listView的item中包含多个控件 点击无效。
当一个view获取焦点时,定义viewGroup和其子控件两者之间的关系。
API 1
android:layoutAnimation
属性说明:设置要在第一次布局ViewGroup时使用的布局动画。 布局动画也可以在第一个布局后手动启动。
必须引用另一个资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是layoutAnimation。
API 18
android:layoutMode
关联方法:setLayoutMode(int layoutMode)
属性说明:定义ViewGroup的布局模式。
必须是以下常量之一:
clipBounds 0 使用子元素的边界
opticalBounds 1 使用子的光学边界
对应的全局属性资源符号是layoutMode。
API 1
android:persistentDrawingCache
属性说明:定义绘图的高速缓存的持久性。
绘图缓存可能由一个 ViewGroup 在特定情况下为其所有的子类启用,例如在一个滚动的过程中。 此属性可以保留在内存中的缓存后其初始的使用。 坚持缓存会消耗更多的内存,但可以防止频繁的垃圾回收时反复创建缓存。 默认情况下持续存在设置为滚动。
必须是以下常量之一:
none 绘图缓存在使用后不保存。
animation 绘图缓存在布局动画后保存。
scrolling 绘图缓存在滚动后保存。
all 绘图缓存总是持久性保存。
对应的全局属性资源符号是persistentDrawingCache。
API 11
android:splitMotionEvents
关联方法:setMotionEventSplittingEnabled(boolean split)
属性说明:设置在触摸事件分派期间此ViewGroup是否应该拆分MotionEvents以分隔子视图。 如果为false(默认),触摸事件将被分派到子视图,其中第一个指针下降,直到最后一个指针上升。 如果为true,则可以将触摸事件分派给多个孩子。 每个指针的MotionEvents将被分派到初始ACTION_DOWN事件发生的子视图。 有关详细信息,请参阅setMotionEventSplittingEnabled(boolean)。
必须是布尔值(boolean),“true”或“false”。
也可以引用一个包含此类型值的资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是splitMotionEvents。
【继承自view.View的XML属性】
...
【公共构造函数】
public ViewGroup (Context context)
public ViewGroup (Context context, AttributeSet attrs)
public ViewGroup (Context context, AttributeSet attrs, int defStyleAttr)
public ViewGroup (Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)