最近项目要求要用Android,所以快速的学习了一些关于Android的知识,下面对view这个组件做一个小小的总结:

View的继承关系如下图:

简单说明View_第1张图片

1)Android的所有UI组件都继承了View类

2)查看ViewGroup的api,可以看到这么一句A ViewGroup is a special view that can contain other views (called children.),也就是说ViewGroup可以包含其他的View,由于ViewGroup是继承自View,所以ViewGroup也可以包含ViewGroup组件。很明显的这是典型的组合模式的应用:我们知道组合模式可以把对象组织到树结构中,用来描述部分和整体之间的关系。

GroupView和View之间的组合关系可以通过ViewGroup的源码来体现出来


public abstract class ViewGroup extends View implements ViewParent, ViewManager {    private static final String TAG = "ViewGroup";    private static final boolean DBG = false;    /**     * Views which have been hidden or removed which need to be animated on     * their way out.     * This field should be made private, so it is hidden from the SDK.     * {@hide}     */    protected ArrayList mDisappearingChildren;    // The view contained within this ViewGroup that has or contains focus.    private View mFocused;

该类包含了一个集合mDisappearingChildren用来添加其他的多个view 和ViewGroup         

所以他们之间的树形结构图如下所示:

    简单说明View_第2张图片

注意途中的View代表的是父类View的子类实例

(关于组合模式的详细情况,参考《Java与模式》组合模式章节)



更多相关文章

  1. Android 1.5: 飞行模式分析
  2. android 设计模式相关内容
  3. android 加载模式
  4. 【译】Google官方推出的Android架构组件系列文章(三)处理生命周期
  5. Android中的基本组件
  6. Android activity启动模式理解
  7. android usb Host模式下与usb Hid 设备的通信

随机推荐

  1. Android插件化框架系列之类加载器
  2. 初识Frida--Android逆向之Java层hook (二
  3. 配置eclipse CDT 开发 android JNI
  4. android studio配置android开发环境
  5. ios与android语音通用方案 编译libopenco
  6. Android 设置和不设置 android:targetSdk
  7. 电池 电量计(MAX17040)驱动分析篇
  8. 从Android 6.0源码的角度剖析View的事件
  9. 详解 Android(安卓)中的 HandlerThread【
  10. 甲骨文控告谷歌Android侵犯Java知识产权