ViewParent 和 ViewManager
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的更多相关文章
- android 应用架构随笔四(View、ViewGroup)
		
View表示了用户界面的基本构建模块. 一个View占用了屏幕上的一个矩形区域并且负责界面绘制和事件处理.手机屏幕上所有看得见摸得着的都是View. Activity是四大组件中唯一一个用来和用户进行 ...
 - Android View框架总结(一)
		
View和Activity的区别 View有哪些? ViewGroup是什么? 为什么Google产生ViewGroup? View的层级结构是什么? View的onMeasure()/onLayou ...
 - Android View架构总结
		
View和Activity的区别 android的四大组件,Activity是四大组件中唯一一个用来和用户进行交互的组件.可以说Activity就是android的视图层. 如果再细化,Activit ...
 - ViewManager
		
我们常常可能会需要动态的添加删除视图,这时就需要用到ViewManager接口: public interface ViewManager{ public void addView(View view ...
 - Android ViewManager解读之requestLayout() 详解
		
尊重原创: http://blog.csdn.net/sk719887916/article/details/48464035 上篇<Android View 中invalidate() 你所不 ...
 - ZendFramework-2.4 源代码 - ViewManager类图
 - [虾扯蛋] android界面框架-Window
		
从纯sdk及framwork的角度看,android中界面框架相关的类型有:Window,WindowManager,View等.下面就以这几个类为出发点来概览下安卓开发的"界面架构&quo ...
 - To Learn
		
1. Hybrid:Ionic.Cordova.AngularJS等框架 webView,处理H5 2. View.ViewGroup android.view.View public class ...
 - Android子线程真的不能更新UI么
		
Android单线程模型是这样描述的: Android UI操作并不是线程安全的,并且这些操作必须在UI线程执行 如果在其它线程访问UI线程,Android提供了以下的方式: Activity.run ...
 
随机推荐
- springmvc简单集成shiro
			
前言: 有天和同事聊天, 谈起权限管理, 他说他有个同事用shiro用的很溜. 正好现在有个管理平台项目, 有权限控制的需求, 因此想借此机会研究一番. 本文主要简单讲解一下对shiro的一些认识, ...
 - Arcgis属性表出现乱码
			
解决方案一:导入符号化字体: 在C:\Windows\Fonts文件夹下放入.TTF格式的字体库(此时加入农村二调_0.TTF和TDT10142007.ttf),便可使符号化的乱码显示正常. 解决方案 ...
 - Spring @Resource,@Autowired,@Qualifier的注解注入和区别
			
spring2.5提供了基于注解(Annotation-based)的配置,我们可以通过注解的方式来完成注入依赖.在Java代码中可以使用 @Resource或者@Autowired注解方式来经行注入 ...
 - lvm快照
			
磁盘快照的使用(快照好像只可以使用一次,用过后自动删除) 首先在 /bplvm 下随便创建一个文件,如a.txt 然后执行命令 lvcreate -L 120M -s -n SNAP /dev/sto ...
 - WebForm AnyWay
			
项目地址 : https://github.com/kelin-xycs/WebFormAnyWay WebForm AnyWay 用 WebForm 构建 简洁高效 的 Web 应用 WebFor ...
 - MySQL 中,字符串 0 和数字 0 的区别
			
我的理解: 用户输入值后,MySQL 根据该字段的数据类型,来转换值.
 - Feign中使用hystrix
			
Feign中使用hystrix 一.在Order工程中的bootstrap.yml中增加配置 feign: hystrix: enabled: true
 - 汉语言处理工具pyhanlp的简繁转换
			
繁简转换 HanLP几乎实现了所有我们需要的繁简转换方式,并且已经封装到了HanLP中,使得我们可以轻松的使用,而分词器中已经默认支持多种繁简格式或者混合.这里我们不再做过多描述. 说明: ·Ha ...
 - Window离线环境下如何安装pyhanlp
			
Hanlp在离线环境下的安装我是没有尝试过的,分享SunJW_2017的这篇文章就是关于如何在离线环境下安装hanlp的.我们可以一起来学习一下! HanLP是一款优秀的中文自然语言处理工具,可以实现 ...
 - SoundManager 2 / API Demo and Code Examples
			
http://www.schillmania.com/projects/soundmanager2/