Android View和ViewGroup

问题描述 投票:9回答:6

在Android ViewGroup继承自ViewViewGroup是一个容纳Views的容器。

ViewGroup (LinearLayout)
View (TextView)

为什么Android上的人将这种关系定义为Inheritance而不是组合。由于ViewGroup包含Views不应该是组成?

android view viewgroup
6个回答
12
投票

我觉得你的措辞过于笼罩。

“ViewGroup”尽可能多地从“View”继承为“TextView”,“ImageView”或......更多的是......“ScrollView”或“SurfaceView”(后者)两个都“包含东西”)。

也许“观点”不一定是术语的最佳选择......但是阶级层次结构是完全有意义的。无论它的子类名称是什么:)

恕我直言 ...


3
投票

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

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

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


2
投票

阅读the official doc是黄金法则。

ViewGroup是一个特殊视图,可以包含其他视图(称为子视图)。视图组是布局和视图容器的基类。此类还定义了ViewGroup.LayoutParams类,该类充当布局参数的基类。


如果您仍然不知道它是什么,请使用Google图片进行搜索:

enter image description here


1
投票

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

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

所以它真的是一个View

我同意类名ViewGroup有点令人困惑,因为它听起来像是一个组,而不是一个视图。把它称为ViewGroupView可能更合乎逻辑,如果笨拙的话。


0
投票

Viewgroup继承了视图的属性,并对其他视图和视图组执行了更多操作


0
投票

ViewGroup是一个可以包含其他视图的特殊视图。 - 视图组是布局和视图容器的基类 - 例如,RelativeLayout是包含TextView(视图)的ViewGroup,也包含其他布局。

参考链接信息:https://developer.android.com/reference/android/view/ViewGroup.html

View表示用户界面组件的基本构建块 - 它占据屏幕上的矩形并负责绘制和处理事件。 - 例如EditText,Button,TextView等

参考链接信息:https://developer.android.com/reference/android/view/View.html

© www.soinside.com 2019 - 2024. All rights reserved.