1

我用X按钮创建了自定义TextView,当按钮被点击时,它的可见性被设置为GONE。现在我想要获得LinearLayout中可见的TextViews的数量。目前,我得到的是插入的总计TextView的数量而不是可见的数量。getChildCount()返回的儿童数量不正确

例子:

当我有2个TextViews,getChildCount()提供2 但如果我通过单击X按钮删除一个TextView,它仍然给了我2。为什么会出现这种情况?

我创建了这样的事情:

It is a TextView

的X这里是一个按钮,它的的onClick()将设置两个TextViewButton到GONE的知名度。

+0

可见性设置为消失的视图仍然是父布局的孩子。 – Luksprog

+0

这就是我的问题,我怎样才能得到可见孩子的数量? –

+0

如果您在父级上调用removeView,getChildCount将重新创建1。更改可见性并不会移除子女 – Blackbelt

回答

3

我怎样才能看到可见孩子的数量?

那么你需要迭代视图/布局的子项并检查可见性。这是一个简单的循环:

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