1.概念:
Android里的图形界面都是由View和ViewGroup以及他们的子类构成的:
View:所有可视化控件的父类,提供组件描绘和时间处理方法
ViewGroup: View类的子类,可以拥有子控件,可以看作是容器
Android UI中的控件都是按照这种层次树的结构堆叠得,而创建UI布局的方式有两种,自己在Java里写代码或者通过XML定义布局,后者显得更加方便和容易理解!也是我们最常用的手段!另外我们一般很少直接用View和ViewGroup来写布局,即是自定义布局。更多的时候使用它们的子类控件或容器来构建布局!
2.关系:
View是Android所有控件的基类,我们平常使用的布局控件LinearLayout,它就是继承自ViewGroup,ViewGroup可以理解为View的组合,它可以包含很多View以及ViewGroup。
如下图UI布局的层次结构:
需要注意的是ViewGroup也继承自View。ViewGroup派生了很多中布局控件子类,比如LinearLayout、RelativeLayout等。
View派生出的直接子类:
ImageView,TextView,ViewGroup等
View派生出的间接子类:
Button,CheckBox,CheckedTextView等
ViewGroup派生出的直接子类:
AbsoluteLayout,FrameLayout,LinearLayout,RelativeLayout等
ViewGroup派生出的间接子类:
ListView,GridView等
3.区别:
View是所有UI组件的基类,而 ViewGroup是容纳这些组件的容器,其本身也是从View派生出来的。
看下图:
简单来说,View是指某些具体的控件,如TextView、ImageView等,ViewGroup是用来盛放这些控件的容器,如LinearLayout、RelativeLayout等。