2016-06-11 8 views
2

ViewLinearLayoutに動的に追加して削除しています。LinearLayoutのリスナー

LinearLayoutの子の数が変更されたときに、そのようなリスナーがあるかどうかを確認しようとしていますか?

答えて

2

ViewGroup.OnHierarchyChangeListenerをご覧ください。

onChildViewAdded()onChildViewRemoved()の方法を使用して、子カウントがViewGroupであることを確認するカウンタを使用します。

あなたにはこのような何かを行うことができ、あなたの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(); 
     } 
    }); 
} 

(ちょうどラフの例では、あなたのニーズに応じてカウンタロジックを実装する必要があるかもしれません)