[Android] View 的继承关系

在 Android 所有的控件和 Layout 都有着一个父类 View 。Anroid 通过继承的方式,对父类控件进行继承,由此来在父类基础上创造新的控件。

View


我们先看看 View 这个父类


Paste_Image.png

可以看到间接继承的有100多个子类,不得不说 View 这个爹很成功(Object 斜眼)。

ViewGroup


我们先拿其中的 ViewGroup 来说吧


Paste_Image.png

可以看到大部分的 Layout 都继承自 ViewGroup 。一个 ViewGroup 可以包含别的 View 或 ViewGroup 。所以一个视图的根布局,通常是一个 ViewGroup 。

对于其中的 LinearLayout , RelativeLayout , GridLayout 等 Layout 大家应该都比较熟悉了。

但是看看里面还有一些控件,这些控件同样有着包含别的 View 或 ViewGroup 的功能。比如 RecyclerView , AdapterView 。

可能你会问,这个 AdapterView 是什么玩意。其实这个是我们常用的 GridView, ListView 的父类,换句话说,GridView, ListView 也属于 ViewGroup ,他们都能包含其他的 View 或 ViewGroup。相信你在使用 ListView 的时候一定在里面添加了一些控件的吧。

TextView


不得不说 TextView 也是一个强大的父类,很多的控件都继承自它。


Paste_Image.png

其中常见的有 Button,EditText,CheckBox,RadioButton 等,我们发现啊。。貌似只要带有文字的控件基本都来继承自 TextView。这是他作为父类的特点。

ImageView


ImageView 带有显示图片的特性,然而很少有控件需要这个特性,所以相对来说子类就比较少了。


Paste_Image.png

其中比较用的多的就是 ImageButton 了,现在 Android 还提供了原生的 FloatingActionButton 也是极好的。

总结


以上提出来说的三个子类是在整个 View 体系中比较重要的,其中以 ViewGroup 最为繁杂,派生类最多,而且其中有控件,有布局。TextView 则以子类控件继承为主。ImageView 的话相对需求较少。

我们给出一个简略图,可以直观的看到整个体系中常用类的继承结构。


QQ截图20160122141721.png

ps1:上图包括直接子类和派生之类
ps2:如果想查看完整的继承结构,请查看官方文档

posted @ 2017-03-12 20:32  天涯海角路  阅读(2626)  评论(0编辑  收藏  举报