7

假设在我的LinearLayout(比如 parentLayout)中还有 5 个其他LinearLayouts(比如 childLayout),目前只有其中一个是可见的。其他布局依赖于一些外部事件来使它们可见。如何计算 parentLayout 中可见的 childLayout 的数量?

4

2 回答 2

11

您可以遍历父布局的子级并检查它们的可见性。像这样的东西:

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);
于 2013-09-10T16:18:06.170 回答
2

这是一个函数,它返回 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;
}
于 2013-09-10T16:18:46.783 回答