在Android中,可以使用/实现一个监听器,当给定视图的子节点数量动态变化时触发回调?例如,一个视图有 3 个直接子级,并且通过代码删除了一个,我需要一个事件来触发说直接子级的数量已经改变。
澄清一下,我不需要在视图树上执行深度遍历来计算子节点数,我只是对计算给定视图第一层的子节点数感兴趣。
非常感谢
它很容易欺骗。
只需扩展您添加视图的视图组并覆盖删除和可选的 addView 方法。
将您的回调接口实现提供给您的任何 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);
}
}
}