2011-08-20 30 views
0

1)爲什麼當我從Java代碼創建自定義複合視圖時,它被包裝在另一個視圖中,從而創建另一個視圖層次結構?如果我使用XML中的<include>標記創建視圖,則不會發生這種情況。 (請參閱層次管理器附帶的圖像)。有什麼理由呢?從Java代碼創建的視圖被包裝在另一個視圖中。爲什麼?

enter image description here

2)所述的圖像顯示(其中該視圖由<include>標籤創建)另一個有趣的行爲的一部分 - 可以容易地以具有在同一層級使用相同的android:id的意見。當使用findByViewId()方法時,返回第一個視圖引用。

回答

0

有什麼理由呢?

因爲這就是您編寫代碼的方式如果您不想要這種行爲,請修復您的代碼。

,這是很容易可能具有相同的Android的看法:在同一層級

當然ID。你總是可以看到這個子類AdapterView,如ListView

+0

嗨你寫了_因爲這是你寫代碼的方式如果你不想要這樣的行爲,修復你的代碼._容易被說 - 但怎麼?在使用** ** XML元素和在Java代碼中使用相同的XML之間有什麼區別?我應該發佈源代碼嗎?謝謝! – STeN

+0

@STeN:「使用 XML元素和在Java代碼中擴充相同的XML之間有什麼區別?」 - 沒有直接的區別。不同之處在於你對結果做了什麼。如果我不得不猜測,在後一種情況下,你有一個'RoomInfoView'膨脹一個'RoomInfoView'並將其添加到自身,這將解釋重複的級別。但是,如何避免無限遞歸問題已經超出了我的想象。 :-) – CommonsWare

相關問題