ViewGroup布局管理器
Android的UI界面都是由View和ViewGroup及其派生类组合而成的。其中,View是所有UI组件的基类,而ViewGroup是容纳这些组件的容器,其本身也是从View派生出来的。
AndroidUI界面的一般结构图
一般来说,开发Android应用程序的UI界面都不会直接使用View和ViewGroup,而是使用这两大基类的派生类。
ViewGroup常用属性
- addStatesFromChildren:定义布局是否应用子布局的背景;
- alwaysDrawnWithCache:定义子布局是否应用绘图的高速缓存;
- animateLayoutChanges:布局改变时是否有动画效果;
- animationCache:定义子布局也有动画效果;
- clipChildren:定义子布局是否一定要在限定的区域内;
- clipToPadding:定义布局间是否有间距;
- descendantFocusability:控制子布局焦点获取方式 常用于listView的item中包含多个控件 点击无效,值:beforeDescendants、afterDescendants、blocksDescendants;
- layoutAnimation:定义布局显示时候的动画
- layoutMode:布局模式,值:clipBounds、opticalBounds;
- persistentDrawingCache:定义绘图的高速缓存的持久性;
- splitMotionEvents:定义布局是否传递touch事件到子布局;
ViewGroup.LayoutParams类
用于子控件向父窗体传达自己的意图,每个不同的ViewGroup子类都有自己的LayoutParams类,其中定义了包含在布局中的子控件特殊的属性。
LayoutParams类用于父视图和子视图之间布局的属性信息,它封装了Layout的位置、高、宽等信息。描述宽高可以设置成三种值:
1、match_parent,即填满(和父容器一样大小) ;
2、wrap_content 根据内容大小决定 ;
3、一个确定的值。