2012-09-12 63 views
1

只是爲了澄清。我有一個TabHost,並在該Tabhost內有5個選項卡。我正在玩tabhost,所以我試圖關閉其中一個選項卡(即其中一個子視圖)。問題是,即使它工作,選項卡下面的佈局保持不變,即如果我在我正在關閉的選項卡中有一個textview,並且在主選項卡中有一個按鈕,當我用textview關閉選項卡時,選項卡確實消失,但textview保持不變。這是我使用關閉標籤頁的代碼:在TabHost中從TabWidget中刪除視圖會導致佈局保持不變? (ANDROID)

int vPos = mHost.getCurrentTab(); 
    TabWidget tWidget = mHost.getTabWidget(); 

    if (vPos != 0) { 
     tWidget.setCurrentTab(0); 
     tWidget.removeView(mHost.getTabWidget().getChildAt(vPos)); 

    } 

所以基本上是關閉的選項卡,切換到另一個選項卡,但佈局下方的標籤仍然是完全一樣的。我知道人們會希望我發佈完整的代碼,包括佈局和whatnot,但這是一個普遍的事情,它不考慮佈局,它只關注標籤(如果我錯了,隨時指出它)。

也許我應該在視圖上調用invalidate(),但是這不起作用,無論我是否使子視圖,選項卡小部件或tabhost無效。

回答

3

不幸的是,由於缺少removeTab函數,這是TabWidget內部的一個問題。 當您從TabWidget中調用removeView時,將從ViewGroup類調用removeView,該類沒有製表符的概念。 因此,您實際上只是刪除實際的選項卡,並將索引和佈局保持爲不受影響。

過多的解決方法是調用removeAllViews並重新添加所有視圖。

+2

哇,雖然這就像...... 2個月大的時候,聽到我不是那個搞砸的人,我真的很放心。我實際上試圖解決這個問題兩個星期後,我發佈了這個,但沒有用,顯然是呵呵。無論如何,謝謝你的答案! – ZimZim

相關問題