Подтвердить что ты не робот

Проверьте, добавлен ли элемент вида в макет или нет программно

В моем классе фрагмента я добавляю элемент детского представления программно к моему расположению условно:

LinearLayout child = (LinearLayout) inflater.inflate(R.layout.child_view, null);

LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,100);

container.addView(child, params);

Так как вышеупомянутый код будет выполняться условно, значит, в какой-то момент я хотел бы проверить, добавлено ли дочернее представление или нет, как это сделать программно?

4b9b3361

Ответ 1

Я думаю, вы можете просто использовать

findViewById(your_view_id) 

метод: если его результат равен нулю, представление не существует, в противном случае представление присутствует

Ответ 2

Если вы создаете представление через надувной элемент, вы можете проверить его родительский

if(view.getParent() != null) {...}

Ответ 3

Извините за поздний ответ, но вы можете попробовать эту альтернативу:

используйте container.getChildCount(); перед добавлением и после добавления представления. Например:

int x = container.getChildCount();

container.addView(child, params);

int y = container.getChildCount();

if(y > x)
   Toast.makeText(context, "View Successfully Added!", Toas.LENGTH_SHORT).show();

Ответ 4

Я не могу написать комментарий, поэтому я пишу его здесь как решение: Из уровня API 19 вы можете вызвать isAttachedToWindow(), который не очень помогает, но если вы нацеливаете API 19 или выше, то это должно работать с документацией.