getChildCount也会计算不可见/已消失的视图吗?

时间:2017-07-20 15:34:25

标签: android

我在LinearLayout中做了一个“getChildCount”。

我内部有一些可见的“GONE”视图。

他们会被计算在内吗?

我想只计算可见的观点。

3 个答案:

答案 0 :(得分:1)

是的,他们会被计算在内。如果您只想计算可见的视图,我建议如下:

int numVisibleViews = 0;
for (int i = 0; i < layout.getChildCount(); i++) {
     if (layout.getChildAt(i).getVisibility() == View.VISIBLE) {
         numVisibleViews++;
     }
}

答案 1 :(得分:1)

即使视图设置为已消失,它也会计算所有视图。如果您想要计算可见的数量,请阅读此帖后解决方案:

Android : getChildCount() returning incorrect number of Children

答案 2 :(得分:0)

由于文档没有声明它只计算可见视图,因此推断它返回可见项目的数量可能是错误的。

  

int getChildCount()

     

返回组中的子项数。

使用以下代码可以获得布局中可见项目的总数。

int cnt=0;
 for (int i = 0; i < count; i++) {
            final View child = getChildAt(i);
            if (child.getVisibility() == View.VISIBLE) {
               cnt++;
}