zoukankan      html  css  js  c++  java
  • [原]ViewGroup(容器组件)详解(API解析)

    一. 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)

    ,





    ,





    ,

  • 相关阅读:
    第三天 moyax
    mkfs.ext3 option
    write file to stroage trigger kernel warning
    download fomat install rootfs script
    custom usb-seriel udev relus for compatible usb-seriel devices using kermit
    Wifi Troughput Test using iperf
    learning uboot switch to standby system using button
    learning uboot support web http function in qca4531 cpu
    learngin uboot design parameter recovery mechanism
    learning uboot auto switch to stanbdy system in qca4531 cpu
  • 原文地址:https://www.cnblogs.com/java20131201/p/3472365.html
Copyright © 2011-2022 走看看