在Android中,可以使用/實現一個監聽器,當給定視圖的子代數動態變化時觸發回調?比如說一個視圖有3個直接的孩子,其中一個通過代碼被刪除,我需要一個事件來觸發,說直接孩子的數量已經改變了。安卓系統 - 查看兒童更改次數時的監聽器/回調
爲了澄清,我不需要在View樹上執行深度遍歷來計數兒童,我只是想計算給定View的第一層兒童的數量。
非常感謝
在Android中,可以使用/實現一個監聽器,當給定視圖的子代數動態變化時觸發回調?比如說一個視圖有3個直接的孩子,其中一個通過代碼被刪除,我需要一個事件來觸發,說直接孩子的數量已經改變了。安卓系統 - 查看兒童更改次數時的監聽器/回調
爲了澄清,我不需要在View樹上執行深度遍歷來計數兒童,我只是想計算給定View的第一層兒童的數量。
非常感謝
它簡單的欺騙。
只是延長查看組您添加視圖進入和覆蓋撈出 可選的addView方法。
將您的回調接口實現提供給您的任何 ViewGroup類方法來設置偵聽器。從 覆蓋刪除和 addView方法調用其代表。使您的回調接口委託接收當前大小。
像這樣的事情
public class MyViewGroup extends LinearLayout {
// provide constructor implmentation to justify super constructor requirement
private OnSizeChangeListener callback;
public void setOnSizeChangeListener(OnSizeChangeListener callback) {
this.callback = callback;
}
@Override
public void remove(View view) {
super.remove(view);
if(callback != null) {
callback.sizeChanged(getChildCount);
}
}
}
這是一個非常整潔的建議,我認爲將是完美的,更先進的狀態跟蹤。但在這種情況下,使用建議的層次結構偵聽器,因爲它似乎是一個現成的解決方案。感謝您的幫助,雖然 – ComethTheNerd
這很好,只是我在找!非常感謝 – ComethTheNerd
很高興我能提供幫助。 – Sam
是的,這實際上是問的+1。我不知道這個已經有的。所以如果我面對這樣的要求,就爲自己寫了一些東西。 :) – Javanator