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++; 
    } 
}