ViewGroup 继承了 View  实现了两个接口  ViewParent 和 ViewManager

接口 ViewParent:定义了成为一个View的parent的一些“职能”,当parent 和 它的child相互影响的时候查看此类。

requestLayout():当view parent 的child view layout 发生彻底改变的时候调用,这个方法将通过视图树处理layout,即重新调用parent view 的OnMeasure 方法 OnLayout 方法 和 OnDraw方法。(与View的invalidate区别:invalidate只调用onDraw方法,重新绘画)

isLayoutRequested():在该view parent 中是否请求重新绘图(即是否调用了requestLayout)。

invalidateChild(View child, Rect r):全部child 或者 部分 child 数据已经改变需要重绘。

getParent():如果 parent 存在 返回它本身,如果不在 返回null。

requestChildFocus(View child, View focused) :当parent中的一个child想获取焦点时调用。

recomputeViewAttributes(View child) :告诉视图层级(view hierarchy)全局view的属性需要重新计算。

clearChildFocus(View child) : parent中的child放弃目前焦点。

getChildVisibleRect(View child, Rect r, android.graphics.Point offset : 根据子视图坐标计算一个矩形的区域是否可见

focusSearch(View v, int direction) : 通过所给的条件(FOCUS_UP、FOCUS_DOWN、FOCUS_LEFT、FOCUS_RIGHT)找到最近的要获取焦点的view

bringChildToFront(View child) : 改变child的z order 顺序,将它放在其他子视图的最上面。

showContextMenuForChild(View originalView) :给指定View一个ContextMenu

createContextMenu(ContextMenu menu) : 创建一个上下文菜单

接口 ViewManager :在一个Activity中 add 或者 remove 一个 child view,通过Context.getSystemService()得到它的实例。

addView(View view, ViewGroup.LayoutParams params)

updateViewLayout(View view, ViewGroup.LayoutParams params)

removeView(View view)

参考:https://blog.csdn.net/qq_36713816/article/details/53519171

ViewParent 和 ViewManager的更多相关文章

  1. android 应用架构随笔四(View、ViewGroup)

    View表示了用户界面的基本构建模块. 一个View占用了屏幕上的一个矩形区域并且负责界面绘制和事件处理.手机屏幕上所有看得见摸得着的都是View. Activity是四大组件中唯一一个用来和用户进行 ...

  2. Android View框架总结(一)

    View和Activity的区别 View有哪些? ViewGroup是什么? 为什么Google产生ViewGroup? View的层级结构是什么? View的onMeasure()/onLayou ...

  3. Android View架构总结

    View和Activity的区别 android的四大组件,Activity是四大组件中唯一一个用来和用户进行交互的组件.可以说Activity就是android的视图层. 如果再细化,Activit ...

  4. ViewManager

    我们常常可能会需要动态的添加删除视图,这时就需要用到ViewManager接口: public interface ViewManager{ public void addView(View view ...

  5. Android ViewManager解读之requestLayout() 详解

    尊重原创: http://blog.csdn.net/sk719887916/article/details/48464035 上篇<Android View 中invalidate() 你所不 ...

  6. ZendFramework-2.4 源代码 - ViewManager类图

  7. [虾扯蛋] android界面框架-Window

    从纯sdk及framwork的角度看,android中界面框架相关的类型有:Window,WindowManager,View等.下面就以这几个类为出发点来概览下安卓开发的"界面架构&quo ...

  8. To Learn

    1. Hybrid:Ionic.Cordova.AngularJS等框架 webView,处理H5 2. View.ViewGroup android.view.View  public class ...

  9. Android子线程真的不能更新UI么

    Android单线程模型是这样描述的: Android UI操作并不是线程安全的,并且这些操作必须在UI线程执行 如果在其它线程访问UI线程,Android提供了以下的方式: Activity.run ...

随机推荐

  1. Python 进程池的同步方法和异步方法

    import time from multiprocessing import Process,Pool def f1(n): time.sleep(0.5) # print(n) return n* ...

  2. 剑指Offer 19. 顺时针打印矩阵 (其他)

    题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ...

  3. ecmall 学习记录

    1. /* 载入配置项 */ $setting =& af(MODULE); Conf::load($setting->getAll()); af方法定义如下: /** * 获取数组文件 ...

  4. Python - 统计一篇文章中单词的频率

    def frenquence_statistic(file_name): frequence = {} for line in open(file_name,'r').readlines(): wor ...

  5. selenium 网络请求

    selenium 网络请求 browser.find_element_by_id("id的name")browser.find_element("")brows ...

  6. Matlab关于视觉问题中的一些自有API

    [randsample/randperm] y = randsample(n,k);从1:n中随机抽取k个数. y=  randperm(n)或者y=  randperm(n,k) [rectint] ...

  7. 记录一个Q版openstack搭建教程地址

    https://blog.csdn.net/networken/article/details/80682437 感谢这篇文章的作者,文档很详细,记录一下,希望对大家有帮助.

  8. Spring Boot - 基础 POM 文件

    表 1. Spring Boot 推荐的基础 POM 文件 名称 说明 spring-boot-starter 核心 POM,包含自动配置支持.日志库和对 YAML 配置文件的支持. spring-b ...

  9. 接口测试工具SoapUI Pro5.1.2基本使用20150920

    soapui是接口测试工具,最近因为要做接口测试,使用了下,现在和大家分享下: 工具安装很简单,就不说了,直接说使用,先什么都不说,照着操作一遍,我们拿天气预报的webserver来实战: 主要包括: ...

  10. <亲测>CentOS中yum安装ffmpeg

    CentOS中yum安装ffmpeg 1.升级系统 sudo yum install epel-release -y sudo yum update -y sudo shutdown -r now 2 ...