一. ViewGroup简介

1.View和ViewGroup关系

UI组件在Android中的位置 : Android中的UI组件大部分都放在android.widget 或者 android.view包中;  View组件 和 ViewGroup组件都在android.view包中;

View 和 ViewGroup关系 :

继承关系 : ViewGroup是View的子类, 因此ViewGroup有View的一切属性, 可以当做View来使用, ViewGroup主要是当做容器使用; View是小控件widget和容器组件ViewGroup的父类, ViewGroup是布局如LinearLayout的基类;

包含关系 : ViewGroup中可以包含View和ViewGroup, ViewGroup可以无限嵌套;

View和ViewGroup关系图解 :

抽象类 : ViewGroup是一个抽象类, 作为容器的类通常是ViewGroup的子类; ViewGroup子类对象有 : LinearLayout, FrameLayout等布局;

2. ViewGroup中的内部类

两个内部类 :

ViewGroup通过Viewgroup.LayoutParams和ViewGroup.MarginLayoutParams来控制容器中的组件;

ViewGroup.LayoutParams支持的XML属性 :

android:layout_height属性(指定布局高度) 和 android:layout_width属性(指定布局宽度), 这两个属性的值可以为 fill_parent, match_parent, wrap_content, 其中充满布局空间推荐使用match_parent;

组件的宽高 与 布局的宽高 : Android的组件的高度和宽度不是其实际的宽度和高度, 组件实际的高度和宽度同样受布局的宽高影响, 例如设置组件的宽度为100px, 如果设置布局宽度(layout_width)为match_parent, 那么组件的实际宽度就会被拉宽到整个布局, 如果设置布局的宽度为wrap_content,
那么组件的实际宽度就是100px;

ViewGroup.MarginLayoutParams支持的XML属性 :

android:layout_marginBottom : 指定该子组件到父容器下边界的距离, 同理android:layout_marginTop, android:layout_marginLeft, android:layout_marginRight,

3. View介绍

View可以有两种方式创建 : 一种是靠XML文件创建, 一种是靠代码创建;

这里只是简单的介绍下, View详细的属性会单独有一篇博客进行总结;

View创建关注的方面 :

(1)设置属性

长宽等属性可以在XML中设置, 也可以在代码中设置;

(2)请求焦点

可以通过函数实现焦点转变, 可以根据不同的焦点设置背景;

焦点类别 : 可获取的焦点, 不可获取的焦点, 可以获取但是正在触摸状态下的焦点;

(3)设置事件监听

View在本身发生变化的时候, 会将信息广播出去, 这边变化例如 : 点击, 焦点改变等;

一个事件的广播到来, 该事件就会传递到相应的View中对应的监听器里, 相当于回调View中的监听器方法;

(4)设置显示与隐藏

View可以在XML或者代码中设置是否显示或者隐藏. 同样也可以设置滚动条等设置;

二. 自定义ViewGroup

1. ViewGroup中相关方法介绍

(1)测量回调方法

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

,

,

,

作者:han1202012 发表于2013-11-8 20:57:07 原文链接
阅读:51 评论:0 查看评论

安卓程序代写 网上程序代写[原]ViewGroup(容器组件)详解(API解析)的更多相关文章

  1. 安卓程序代写 网上程序代写[原]BluetoothDevice详解

    一. BluetoothDevice简介 1. 继承关系 public static Class BluetoothDevice extends Object implement Parcelable ...

  2. 安卓程序代写 网上程序代写[原]Android之Bluetooth编程

    ViewGroup 相关资料 : http://www.incoding.org/admin/archives/199.html http://bbs.csdn.net/topics/37014474 ...

  3. 安卓程序代写 网上程序代写[原]BluetoothAdapter解析

    这篇文章将会详细解析BluetoothAdapter的详细api, 包括隐藏方法, 每个常量含义. 一 BluetoothAdapter简介 1.继承关系 该类仅继承了Object类; 2.该类作用 ...

  4. 安卓程序代写 网上程序代写[转]SVN 在线代码托管工具

    本文转载自 : http://blog.csdn.net/ithomer/article/details/8142920  作者:阳光岛主 在互联网环境使用SVN服务,你必须要有一台在互联网环境内支持 ...

  5. (转)写的非常好的一篇HTTP协议详解

    原文地址:http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html#3931004(推荐看原文,因为原文文章末有更详细链接) 当今 ...

  6. 微信小程序组件——详解wx:if elif else的用法

    背景 在学习微信小程序开发wxml页面时,需要使用if,else来判断组件是否进行展示,代码如下 <view wx:if="{{is_login==1}}">成功登录& ...

  7. 安卓程序代写 网上程序代写[原]Android应用的自动更新模块

    软件的自动更新一般都与Splash界面绑定在一起, 由于需要维护的软件界面很复杂, 一个Activity中嵌入ViewPager, 并且逻辑比较复杂, 索性重新写一个Activity, 现在的软件都很 ...

  8. 安卓程序代写 网上程序代写[原]vim编辑器配置及常用命令

    最近工作不安分, 没有了刚入行时候的锐气, 不知道什么时候开始懈怠起来, 周末在电脑旁边看新闻, 搞笑图片, 追美剧, 一坐就是一天, 很是空虚. 我需要摆脱这种状态, 正好想学习一下安卓底层, An ...

  9. 安卓程序代写 网上程序代写[转]eclipse快捷键

    F 键类 F2 显示详细信息 F3 跳到声明或定义的地方 Ctrl + 键类 Ctrl+1 快速修复 ( 最经典的快捷键 , 就不用多说了 ) Ctrl+D 删除当前行 Ctrl+E 快速显示当前 E ...

随机推荐

  1. [svc]traceroute(udp+icmp)&tracert(icmp)原理

    2018年4月11日 11:41:29更新 工具 发包 触发点 结局 traceroute 初始发udp包 ttl递增,icmp每一跳报ttl超时 udp端口不可达 tracert 初始发icmp r ...

  2. My new English

    作为一个程序员,不管你觉得是高端大气上档次,还是低调奢华有内涵.有一点不能否认,就是英语对于一个爱学习.想不断提高自己的程序员来说是非常重要的.不管是看英文文档,看英文的视频资料,还是想出国工作,与全 ...

  3. 提取字符串中的数字(C语言)

    题目要求 问题描述:给定一个任意字符串,提取出其中所包含的整数. 样例输入:A12 32bc de51f6576g 样例输出:共计 4 个整数:12 32 51 6576 解决方案-指针版本 核心思想 ...

  4. Java中List详解

    List是Java中比较常用的集合类,关于List接口有很多实现类,本文就来简单介绍下其中几个重点的实现ArrayList.LinkedList和Vector之间的关系和区别. List List 是 ...

  5. Linux系统Apache服务 - 配置HTTP的默认主页

    1.安装HTTPD和httpd-manual软件包 # yum -y install http httpd-manual 2.创建/var/www/html/index.html 内容是 Hello ...

  6. MyBean-关于单实例插件

    单实例插件可以通过两个途径实现 第一个在注册时注册成单实例 beanFactory.RegisterBean(pvPluginID: String; pvClass: TClass;     pvSi ...

  7. Kafka:架构简介【转】

    转:http://www.cnblogs.com/f1194361820/p/6026313.html Kafka 架构简介 Kafka是一个开源的.分布式的.可分区的.可复制的基于日志提交的发布订阅 ...

  8. 【Socket】Socket网络编程常用的结构及函数小结

    名词解析 IP地址的作用是标示计算机的网卡地址,每台计算机都有一个IP地址: 端口是指计算机中为了标示在计算机中访问网络的不同程序而设的编号,并不是网卡接线的端口,而是不同程序的逻辑编号,并不是实际存 ...

  9. Android下基于PCM的音频渲染

    环境准备 请按照我之前的文章-Android下基于SDL的位图渲染,安装必要的开发环境. 实践篇 这里主要参考Beginning SDL 2.0(6) 音频渲染及wav播放,只不过将源从WAV文件改成 ...

  10. kkpager的改进,Ajax数据变化但是页码不变的有关问题

    kkpager的改进,Ajax数据变化但是页码不变的问题kkpager 是一个简单分页展示插件,需要依赖jquery.下载地址:http://www.oschina.net/action/projec ...