• Android为TV端助力 ViewTreeObserver(转载)


    Android ViewTreeObserver简介
     
    一、结构
    public final class ViewTreeObserver extends Object
        java.lang.Object
             android.view.ViewTreeObserver
     
    二、概述
        
    这是一个注册监听视图树的观察者(observer),在视图树种全局事件改变时得到通知。这个全局事件不仅还包括整个树的布局,从绘画过程开始,触摸模式的改变等。ViewTreeObserver不能够被应用程序实例化,因为它是由视图提供,参照getViewTreeObserver()以查看更多信息。
     
    三、内部类
        
    复制代码
     1     interface  ViewTreeObserver.OnGlobalFocusChangeListener         
     2   //当在一个视图树中的焦点状态发生改变时,所要调用的回调函数的接口类
     3  
     4   interface  ViewTreeObserver.OnGlobalLayoutListener
     5   //当在一个视图树中全局布局发生改变或者视图树中的某个视图的可视状态发生改变时,所要调用的回调函数的接口类
     6  
     7   interface  ViewTreeObserver.OnPreDrawListener
     8   //当一个视图树将要绘制时,所要调用的回调函数的接口类
     9  
    10   interface  ViewTreeObserver.OnScrollChangedListener
    11   //当一个视图树中的一些组件发生滚动时,所要调用的回调函数的接口类
    12  
    13   interface  ViewTreeObserver.OnTouchModeChangeListener
    14   //当一个视图树的触摸模式发生改变时,所要调用的回调函数的接口类
    复制代码
     
    四、公共方法
       
    复制代码
     1  /**注册一个回调函数,当在一个视图树中的焦点状态发生改变时调用这个回调函数。
     2   * 参数 listener    将要被添加的回调函数
     3   *异常 IllegalStateException       如果isAlive() 返回false
     4   */
     5  public void addOnGlobalFocusChangeListener (ViewTreeObserver.OnGlobalFocusChangeListener listener)
     6      
     7  
     8  /**注册一个回调函数,当在一个视图树中全局布局发生改变或者视图树中的某个视图的可视状态发生改变时调用这个回调函数。
     9   *参数 listener    将要被添加的回调函数
    10   *异常 IllegalStateException       如果isAlive() 返回false
    11   */
    12  public void addOnGlobalLayoutListener (ViewTreeObserver.OnGlobalLayoutListener listener)
    13   
    14  
    15   
    16  /**注册一个回调函数,当一个视图树将要绘制时调用这个回调函数。
    17   *参数 listener    将要被添加的回调函数
    18   *异常 IllegalStateException       如果isAlive() 返回false
    19   */
    20  public void addOnPreDrawListener (ViewTreeObserver.OnPreDrawListener listener)
    21  
    22     
    23  /**注册一个回调函数,当一个视图发生滚动时调用这个回调函数。
    24   *参数 listener    将要被添加的回调函数
    25   *异常 IllegalStateException       如果isAlive() 返回false
    26   */
    27  public void addOnScrollChangedListener (ViewTreeObserver.OnScrollChangedListener listener)  
    28  
    29  
    30  /**注册一个回调函数,当一个触摸模式发生改变时调用这个回调函数。
    31   *参数 listener    将要被添加的回调函数
    32   *异常 IllegalStateException       如果isAlive() 返回false
    33   */
    34  public void addOnTouchModeChangeListener (ViewTreeObserver.OnTouchModeChangeListener listener)
    35  
    36   
    37  //当整个布局发生改变时通知相应的注册监听器。如果你强制对视图布局或者在一个没有附加到一个窗口的视图的层次结构或者在GONE状态下,它可以被手动的调用
    38  public final void dispatchOnGlobalLayout ()
    39     
    40  /**当一个视图树将要绘制时通知相应的注册监听器。如果这个监听器返回true,则这个绘制将被取消并重新计划。如果你强制对视图布局或者在一个没有附加到一个窗口的视图的层次结构或者在一个GONE状态下,它可以被手动的调用
    41   *返回值  当前绘制能够取消并重新计划则返回true,否则返回false。
    42   */
    43  public final boolean dispatchOnPreDraw ()
    44  
    45  /**指示当前的ViewTreeObserver是否可用(alive)。当observer不可用时,任何方法的调用(除了这个方法)都将抛出一个异常。如果一个应用程序保持和ViewTreeObserver一个历时较长的引用,它应该总是需要在调用别的方法之前去检测这个方法的返回值。
    46   *返回值 但这个对象可用则返回true,否则返回false   
    47   */
    48  public boolean isAlive ()
    49     
    50      
    51  /**移除之前已经注册的全局布局回调函数。
    52   *参数 victim 将要被移除的回调函数
    53   *异常 IllegalStateException       如果isAlive() 返回false   
    54   */
    55  public void removeGlobalOnLayoutListener (ViewTreeObserver.OnGlobalLayoutListener victim)
    56   
    57  /**移除之前已经注册的焦点改变回调函数。
    58   *参数 victim 将要被移除的回调函数
    59   *异常 IllegalStateException       如果isAlive() 返回false 
    60   */
    61  public void removeOnGlobalFocusChangeListener (ViewTreeObserver.OnGlobalFocusChangeListener victim)
    62   
    63  /**移除之前已经注册的预绘制回调函数。
    64   *参数 victim 将要被移除的回调函数
    65   *异常 IllegalStateException       如果isAlive() 返回false  
    66   */
    67  public void removeOnPreDrawListener (ViewTreeObserver.OnPreDrawListener victim)
    68   
    69  /**移除之前已经注册的滚动改变回调函数。
    70   *参数 victim 将要被移除的回调函数
    71   *异常 IllegalStateException       如果isAlive() 返回false 
    72   */
    73  public void removeOnScrollChangedListener (ViewTreeObserver.OnScrollChangedListener victim)
    74  
    75  /**移除之前已经注册的触摸模式改变回调函数
    76   *参数 victim 将要被移除的回调函数
    77   *异常  IllegalStateException       如果isAlive() 返回false
    78   */
    79  public void removeOnTouchModeChangeListener (ViewTreeObserver.OnTouchModeChangeListener victim)
    复制代码
  • 相关阅读:
    微信支付v2开发(11) Native支付
    微信公众平台开发(103) 四六级成绩查询
    教爸爸妈妈用微信
    微信支付开发(12) 认清微信支付v2和v3
    微信公众平台卡券功能
    用网页 实现断点续传 (HTTP)
    用SpringBoot 实现断点续传 (HTTP)
    用SpringMVC 实现断点续传 (HTTP)
    用vue 实现断点续传 (HTTP)
    用html5 实现断点续传 (HTTP)
  • 原文地址:https://www.cnblogs.com/xiaoxiaing/p/6511100.html
Copyright © 2020-2023  润新知