日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ViewTreeObserver简介

發布時間:2025/6/15 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ViewTreeObserver简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、結構 public final class ViewTreeObserver extends Objectjava.lang.Objectandroid.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)

總結

以上是生活随笔為你收集整理的ViewTreeObserver简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。