研究ViewGroup之前,我们先来看看ViewGroup的介绍:

/**

* A ViewGroup is a special view that can contain other views

* (called children.) The view group is the base class for layouts and views

* containers. This class also defines the

* android.view.ViewGroup.LayoutParams class which serves as the base

* class for layouts parameters.

一个ViewGroup是一个可以包含其他view的特别的View,ViewGroup是各个Layout和View组件的基类,这个类还定义了LayoutParams类来指定这个基类的布局参数。

Android关于ViewGroup的解释还是比较清楚的,通过这个我们可以看出几点:

1、ViewGroup是一个容器,而这个容器是继承与View的。

2、ViewGroup是一个基类,并且是Layout和一些View组件的基类。

等等,不一而足,眼界有多高相信看到的就有多远,呵呵。

二、ViewGroup的三个方法

在继承ViewGroup时有三个重要的方法,下面我们就来看看:

1onLayout****方法

protected void onLayout(boolean changed, int left, int top, int right, int bottom) {

}

在我们继承ViewGroup时会在除了构造函数之外提供这个方法,我们可以看到,在ViewGroup的源代码中方法是这样定义的,也就是父类没有提供方法的内容,需要我们自己实现。

这个是我们布局的时候用的,待会我们就会使用到这个。

2addView****方法

public void addView(View child) {
addView(child, -1);
}

这个方法是用来想View容器中添加组件用的。我们可以使用这个方法想这个ViewGroup中添加组件。

3getChildAt****方法

public View getChildAt(int index) {
try {
return mChildren[index];
} catch (IndexOutOfBoundsException ex) {
return null;
}
}

这个方法用来返回指定位置的View。

注意:ViewGroup中的View是从0开始计数的。

**可以说我们自定义ViewGroup时这三个方法是至关重要的

以下全部内容都可以扫码免费获取!

  • Android进阶学习全套手册

  • Android对标阿里P7学习视频

  • BATJ大厂Android高频面试题

最后,借用我最喜欢的乔布斯语录,作为本文的结尾:

人这一辈子没法做太多的事情,所以每一件都要做得精彩绝伦。
你的时间有限,所以不要为别人而活。不要被教条所限,不要活在别人的观念里。不要让别人的意见左右自己内心的声音。
最重要的是,勇敢的去追随自己的心灵和直觉,只有自己的心灵和直觉才知道你自己的真实想法,其他一切都是次要。

ViewGroup概述相关推荐

  1. 继承ViewGroup研究(汇总) 一、二、三

    转载过来:为一.二.三版本. 仅供参考: 继承ViewGroup研究(1) --简介和一个小Demo 又翻开一个新篇章了,哈哈,上一回学习的是继承View,关于继承View个人感觉不是那么完美,做技术 ...

  2. 继承ViewGroup研究(2)--在XML中使用ViewGroup初探

    这次研究的是XML中布局自定义ViewGroup,为什么要在XML中自定义ViewGroup,呵呵,其实这个东西吧,还真没法说,我个人的感觉是可以方便的使用Android中已经给出的各种组件,还有自己 ...

  3. android 自定义图片容器,Android应用开发中自定义ViewGroup视图容器的教程

    一.概述在写代码之前,我必须得问几个问题: 1.ViewGroup的职责是啥?ViewGroup相当于一个放置View的容器,并且我们在写布局xml的时候,会告诉容器(凡是以layout为开头的属性, ...

  4. Android ImageLoader(Android-Universal-Image-Loader)【1】概述及使用简单介绍

     Android ImageLoader(Android-Universal-Image-Loader)[1]概述及使用简单介绍 一,前言:为什么要引入Android-Universal-Imag ...

  5. Android 手把手教您自定义ViewGroup

    最近由于工作的变动,导致的博客的更新计划有点被打乱,希望可以尽快脉动回来~ 今天给大家带来一篇自定义ViewGroup的教程,说白了,就是教大家如何自定义ViewGroup,如果你对自定义ViewGr ...

  6. Android(四)——View和ViewGroup

    文章目录 1. 用户界面概述 2. View类常用属性 3. ViewGroup类 4. UI组件的层次结构 1. 用户界面概述 在Android APP中,所有的用户界面元素都是由View和View ...

  7. Property Animator 属性动画概述与示例

    Property Animation 属性动画 属性动画是一个强大的框架,它几乎可以让你的所有东西做动画,你可以随着时间的推移通过更改他们的属性来定义动画,无论它是否绘制在屏幕上,一个属性动画是在指定 ...

  8. Android之自定义ViewGroup

    概述 在写代码之前,我必须得问几个问题: 1.ViewGroup的职责是啥? ViewGroup相当于一个放置View的容器,并且我们在写布局xml的时候,会告诉容器(凡是以layout为开头的属性, ...

  9. android activity详解一:概述

    概述 Activities 是一个程序的组件之一.它的主要功能是提供界面. 一个程序一般由多个Activity组成,各activities之间关系很松散,它们之间没有直接的关联.必须有一个activi ...

最新文章

  1. 移动端丨-webkit-overflow-scrolling:touch属性导致页面卡住
  2. KDD2021最佳论文奖揭晓!胡侠获新星奖,论文接收率仅15%
  3. 将远程服务器获取的linkedhashMap对象转为实体类对象
  4. ue4 改变枢轴位置_UE4渲染模块概述(四)---反射
  5. 【学亮IT手记】枚举类入门实例讲解
  6. dynamic web module 2.5与2.4
  7. 设置eclipse新建maven项目默认使用jdk1.8
  8. 【题解】Luogu P2157 [SDOI2009]学校食堂
  9. Linux虚拟机出现卡死且无法结束进程的解决办法
  10. Tbase 源码 (二)
  11. 阿里云服务器ftp连接后21端口无法使用的问题
  12. smith预估 matlab,毕业论文】大滞后系统Smith预估器的控制仿真
  13. 30道你不得不会的Elasticsearch面试题【附答案解析】
  14. css设置四个字三个字两个字和word一样对齐的打印格式
  15. 卷积满足交换律:F*G(x)=G*F(x)
  16. 【Java定时任务】浅谈CronTrigger的用法和在线Cron表达式生成网址
  17. python在bim中的应用_BIM在智慧桥梁中的应用
  18. 建立一个GTalk连接和启动一个IM会话
  19. 计算机和应用物理学,专业篇丨应用物理学:仰望星空还是脚踏实地?
  20. 封装类:即8种基本类型对应8种封装类

热门文章

  1. 卫视实时收视率对比 | R爬虫可视化第1季
  2. js中加密解密时中文符号乱码
  3. HTML中数字降序排列怎么做,javascript实现表格升序降序排列(示例代码)
  4. 【广州华锐互动】采煤机VR虚拟仿真实训教学系统
  5. 在word中使用快捷键ctr+d删除一行
  6. 入栈和出栈的基本操作
  7. DFX分析 包括DFM等
  8. 查看k8s中Pod里容器的数量和名称
  9. matlab实验二数值运算报告,MATLAB数值运算实验报告.docx
  10. 【putty】html中调起客户端putty