• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Android控件TextView的實現原理分析(10)

    發表于:2013-04-02來源:Csdn作者:羅升陽點擊數: 標簽:Android
    Step 13. TextView.onKeyDown [java] view plaincopyprint? public class TextView extends View implements ViewTreeObserver.OnPreDrawListener { ...... @Override public boolean onKeyDown(int keyCode, KeyEve

      Step 13. TextView.onKeyDown

      [java] view plaincopyprint?

      public class TextView extends View implements ViewTreeObserver.OnPreDrawListener {

      ......

      @Override

      public boolean onKeyDown(int keyCode, KeyEvent event) {

      int which = doKeyDown(keyCode, event, null);

      if (which == 0) {

      // Go through default dispatching.

      return super.onKeyDown(keyCode, event);

      }

      return true;

      }

      ......

      }

      public class TextView extends View implements ViewTreeObserver.OnPreDrawListener {

      ......

      @Override

      public boolean onKeyDown(int keyCode, KeyEvent event) {

      int which = doKeyDown(keyCode, event, null);

      if (which == 0) {

      // Go through default dispatching.

      return super.onKeyDown(keyCode, event);

      }

      return true;

      }

      ......

      }

      這個函數定義在文件frameworks/base/core/java/android/widget/TextView.java中。

      TextView類的成員函數onKeyDown調用另外一個成員函數doKeyDown來處理參數event所描述的鍵盤事件,以便可以相應地改變當前獲得焦點的TextView控件的UI。當TextView類的成員函數doKeyDown的返回值which等于0的時候,就表示當前獲得焦點的TextView控件希望參數event所描述的鍵盤事件可以繼續分發給它的父類View處理,這是通過調用父類View的成員函數onKeyDown來實現的。

      至此,我們就分析完成TextView控件獲得鍵盤事件的過程了,整個TextView控件的實現框架也分析完成了。

      在Android系統中,其它的Android控件與TextView控件的實現框架都是類似的,區別就在于實現細節和所表現的UI不一樣,而且它們一般都有一個共同的特點,那就是都在宿主窗口的繪圖表面上進行UI繪制。在接下來的一篇文章中,我們就分析另外一個種以SurfaceView為代表的特殊控件,它們的UI是繪制在一個專用的繪圖表面上面的,即它們不與宿主窗口共享同一個繪圖表面。敬請關注!

    原文轉自:http://blog.csdn.net/luoshengyang/article/details/8636153

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>