zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Word 2003 Excel 2003 的迟绑定(late binding) 方法 时空地图TimeGIS
    快手之友情链接 时空地图TimeGIS
    InfoVista.NET 概述 时空地图TimeGIS
    快手博客 时空地图TimeGIS
    快手文档 www.kuaishou.net 时空地图TimeGIS
    快手之Excel篇 www.kuaishou.net 时空地图TimeGIS
    InfoVista.NET Beta 时空地图TimeGIS
    中国互联网络发展状况统计报告2009年 时空地图TimeGIS
    http://wiki.kuaishou.net 时空地图TimeGIS
    快手影音 www.timegis.com 时空地图TimeGIS
  • 原文地址:https://www.cnblogs.com/jooy/p/9242594.html
Copyright © 2011-2022 走看看