我的猜測是,每個視圖都有一個ID,所以你只需要直到它找到一個匹配。
不過,我只能夠跟蹤這樣的:
Activity.java
2071 public View findViewById(int id) {
2072 return getWindow().findViewById(id);
2073 }
Window.java
989 public View findViewById(int id) {
990 return getDecorView().findViewById(id);
991 }
View.java
17067 public final View findViewById(int id) {
17068 if (id < 0) {
17069 return null;
17070 }
17071 return findViewTraversal(id);
17072 }
View.java
17028 protected View findViewTraversal(int id) {
17029 if (id == mID) {
17030 return this;
17031 }
17032 return null;
17033 }
貌似每個View確實有一個ID(MID ),但跟蹤並沒有導致我任何循環。也許我錯過了一些東西,這臺電腦讓我花了10分鐘去瀏覽頁面,所以我會在回家時再次檢查。也許有人可以爲我們澄清這一點。
[你在那裏](http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.0_r1/android/view/View.java#View。 findViewById%28int%29) – Blackbelt
@Blackbelt別忘了ViewGroup覆蓋了這個實現http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.0_r1/android /view/ViewGroup.java#1629 – Budius
提示未來:按住CTRL並點擊您想要進一步調查的方法。同樣適用於變量,類等。 – Vucko