Как проверить, есть ли у представления дочерние элементы

#android #android-view

#Android #android-просмотр

Вопрос:

Есть ли способ проверить, есть ли у представления дочерние элементы? Например…

 boolean bool = view.hasChildren(); //returns true if view has one or more children
  

Мне нужно это знать, потому что у меня пустой макет, в который я добавляю новые представления динамически, и мне нужно знать, является ли макет пустым или нет.

Ответ №1:

Есть ли способ проверить, есть ли у представления дочерние элементы

Предполагая, что это подкласс ViewGroup , вы можете использовать getChildCount() . Например.

  public static boolean hasChildren(ViewGroup viewGroup) {
    return viewGroup.getChildCount() > 0;
 }
  

Ответ №2:

Нам также нужно проверить, может ли view иметь дочерние представления или нет. Например,

     private int getViewsCount(View view){
        try{
            return ((ViewGroup) view).getChildCount();
        }catch(Exception e){
            return 0;
        }
    }
  

Некоторые представления, такие как TextView и ImageView (например), не могут быть переданы в ViewGroup, поэтому нам нужно перехватить это исключение, чтобы избежать ошибок во время выполнения.

Ответ №3:

попробуйте это:

 for(int index=0; index<((ViewGroup)viewGroup).getChildCount();   index) {
    View nextChild = ((ViewGroup)viewGroup).getChildAt(index);
}