我在动态地向aView
添加和移除LinearLayout
s。
我正在尝试检查当一个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();
}
});
}
(只是一个粗略的例子,您可能需要根据需要实现计数器逻辑)