2013-09-10 3 views
3

Предположим, что в моем LinearLayout (скажем, parentLayout) есть еще 5 LinearLayouts (скажем, childLayout), где на данный момент видна только одна из них. Другие макеты зависят от какого-либо внешнего события, чтобы сделать их видимыми. Как подсчитать количество childLayout в parentLayout, которые видны?Подсчет видимых элементов в макете

ответ

5

Вы можете перебирать дочерние элементы родительского макета и проверять их видимость. Что-то вроде этого:

LinearLaout parent = ...; 
int childCount = parent.getChildCount(); 
int count = 0; 
for(int i = 0; i < childCount; i++) { 
    if(parent.getChildAt(i).getVisibility() == View.VISIBLE) { 
     count++; 
    } 
} 
System.out.println("Visible children: " + count); 
1

вот funntion, который возвращает число видимых Чайлдс в ViewGroup как LinearLayout, RelativeLayout, ScrollView, ..etc

private int countVisible(ViewGroup myLayout) 
{ 
    if(myLayout==null) return 0; 
    int count = 0; 
    for(int i=0;i<myLayout.getChildCount();i++) 
    { 
     if(myLayout.getChildAt(i).getVisibility()==View.VISIBLE) 
      count++; 
    } 
    return count; 
} 
Смежные вопросы