Android – прослушиватель / обратный вызов для того, когда число изменений «Просмотр детей»

В Android можно использовать / внедрять прослушиватель, который запускает обратный вызов, когда число детей для данного представления изменяется динамически? Скажем, например, у View есть 3 непосредственных ребенка, и один из них удаляется с помощью кода, мне нужно событие, чтобы предупредить, что количество непосредственных детей изменилось.

Чтобы уточнить, мне не нужно выполнять обход глубины в дереве просмотра для подсчета детей, мне просто интересно подсчитать количество детей в первом слое данного представления.

Большое спасибо

Я считаю, что вы хотите использовать OnHierarchyChangeListener :

Определение интерфейса для обратного вызова, вызываемого при изменении иерархии в этом представлении. Иерархия изменяется всякий раз, когда ребенок добавляется или удаляется из этого представления.

Он имеет два обратных вызова:

  • onChildViewAdded ()
  • onChildViewRemoved ()

Его просто обмануть.

  1. Просто увеличьте группу View. Добавляйте View Into и переопределите удаление и, при необходимости, метод addView.

  2. Предоставьте реализацию интерфейса обратного вызова для любого из методов класса ViewGroup для установки прослушивателя. Вызовите его делегата из переопределенного метода remove и 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); } } }