我在动态地向aView添加和移除LinearLayouts。
我正在尝试检查当一个LinearLayout的孩子数量改变时,是否有这样的监听器?

最佳答案

看看ViewGroup.OnHierarchyChangeListener
使用带计数器的onChildViewAdded()onChildViewRemoved()方法跟踪aViewGroup的子计数。
你可以在你的Activity里做这样的事情:

private childCount;

// ...

@Override
protected void onCreate(Bundle savedInstanceState) {

    // ...

    final LinearLayout layout = (LinearLayout) findViewById(R.id.yourLayout);

    childCount = layout.getChildCount();

    layout.setOnHierarchyChangeListener(new ViewGroup.OnHierarchyChangeListener() {
        @Override
        public void onChildViewAdded(View parent, View child) {
            childCount++;
          //childCount = layout.getChildCount(); //a safer but slower approach
        }

        @Override
        public void onChildViewRemoved(View parent, View child) {
            childCount--;
          //childCount = layout.getChildCount();
        }
    });
}

(只是一个粗略的例子,您可能需要根据需要实现计数器逻辑)

10-06 15:00