首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android View和ViewGroup

Android View和ViewGroup
EN

Stack Overflow用户
提问于 2011-12-23 14:05:25
回答 7查看 7.4K关注 0票数 10

在安卓系统中,ViewGroup继承了ViewViewGroup是一个容纳Views的容器。

代码语言:javascript
复制
ViewGroup (LinearLayout)
View (TextView)

为什么安卓的人将这种关系定义为Inheritance而不是组合。因为ViewGroup包含Views,所以它不应该是组合吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-12-23 14:12:44

我认为你在措辞上太过执着了。

"ViewGroup“和"TextView”一样有理由继承"View“,以及"ImageView”或...更重要的是..."ScrollView“或"SurfaceView”(后两者都是“包含事物”)。

也许“视图”不一定是最佳的术语选择……但是类的继承性是完全有意义的。不管它的子类是什么名称:)

我的..。

票数 12
EN

Stack Overflow用户

发布于 2013-05-20 21:03:08

我认为这是一个很好的复合设计模式的例子:

http://en.wikipedia.org/wiki/Composite_pattern

即使命名可能不是最好的.

票数 3
EN

Stack Overflow用户

发布于 2015-08-07 03:59:32

ViewGroupView的(子类),因为它可以以重要的方式用作视图:

  • 它可以是布局XML文件中的元素
  • 它可以显示在屏幕上(通过显示其子视图、自己的背景颜色等)
  • 它与视图层次结构的其余部分一起膨胀
  • 它可以用作活动的内容视图(通过view

所以它真的是一个View

我同意类名ViewGroup有点令人困惑,因为它听起来像是一个组,而不是一个视图。将其命名为ViewGroupView可能更符合逻辑,尽管很笨拙。

为什么安卓的人把这种关系定义为继承而不是组合?因为ViewGroup包含视图,所以它不应该是复合的吗?

在这种情况下,继承和组合并不是相互排斥的。ViewGroup是一个视图(继承),而一个ViewGroup可以包含视图(组合)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8612774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档