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. elasticsearch 拼音检索能力研究

    gitchennan/elasticsearch-analysis-lc-pinyin 配置参数少,功能满足需求. 对应版本 elasticsearch2.3.2 对应 elasticsearch-a ...

  2. 复习-java-001

    一.基本数据类型: byte.boolean.char.string.int.short.long.float.double 二.java三大特性: 1.封装 封装是实现面向对象程序设计的第一步,封装 ...

  3. ElasticSearch(四):关于es的一些基础知识讲解

    上一篇博客更新完之后,我发现一个问题:在我创建索引的时候依旧无法准确的理解每个字段的意义,所以就有了这个. 1. 关于索引 1.1 关于索引的一些基础知识 在创建标准化索引的时候,我们传入的请求体如下 ...

  4. java服务端的 极光推送

    项目中用到了极光推送  下面写下笔记 首先引入jar包   下载地址https://docs.jiguang.cn/jpush/resources/(非maven项目的下载地址) <depend ...

  5. java_lambda表达式

    lambda表达式1    由来    概念        是通过策略模式来曲线实现的    lambda表达式2    语法详解    lambda表达式3    目标类型的概念    目标类型推断 ...

  6. django基础 -- 10.form , ModelForm ,modelformset

    一.生成页面可用的 HTML标签 1.form 所有内置字段 Field required=True, 是否允许为空 widget=None, HTML插件 label=None, 用于生成Label ...

  7. Ajax(Asynchronous JavaScript )and xml

    JavaScript的两种任务执行模式--同步(synchronous)和异步(Asynchronous) 同步模式 JavaScript的执行环境是单线程的,意味着一次只能执行一个任务,如果有多个任 ...

  8. Docker进入容器后使用ifconfig等命令“command not found”解决办法

      当进入一个容器后,使用ifconfig.ip addr等命令时,出现如下“command not found”:       解决办法:   yum update yum -y install n ...

  9. JS Replace 全部替换字符的用法小结

    script language="javascript">var r= "1\n2\n3\n";//将字母\n替换成分号alert(r.replace(& ...

  10. 在内存中加载DLL

    有个需求是把一个DLL作为数据打包到EXE中,运行的时候动态加载.但要求不是释放出来生成DLL文件加载. 花了一天时间做出来.效果还可以. 不过由于是直接分配内存加载DLL的.有一些小缺陷.例如遍历进 ...