1

Я создал пользовательский TextView с кнопкой X, чья видимость установлена ​​на GONE при нажатии кнопки. Теперь я хочу получить число видимых TextViews в LinearLayout. В настоящее время я получаю подсчет общего текста TextViews, а не видимых.getChildCount() возвращает неправильное количество детей

Пример:

Когда у меня есть 2 TextViews, GetChildCount() дает 2 , но если удалить один TextView, нажав на кнопку X, она по-прежнему дает мне 2. Почему это происходит?

я создал что-то вроде этого:

It is a TextView

Х здесь есть кнопка которого OnClick() устанавливает видимость как TextView и Button Унесенные.

+0

Вид с visiiblity, установленный на удаление, по-прежнему является дочерним элементом родительского макета. – Luksprog

+0

Вот что мой вопрос: как я могу получить количество видимых детей? –

+0

getChildCount будет извлекать 1, если вы вызываете removeView на родителя. Изменение видимости не удаляет ребенка – Blackbelt

ответ

3

Как я могу получить количество видимых детей?

Ну, для этого вам нужно перебирать детей вида/макета и проверять видимость. Это простой цикл:

// untested/pseudocode 
int visibleChildren = 0; 
for (int i = 0; i < layout.getChildCount(); i++) { 
    if (layout.getChildAt(i).getVisibility() == View.VISIBLE) { 
     visibleChildren++; 
    } 
} 
Смежные вопросы