簡體   English   中英

tabHost中的Android關閉標簽

[英]Android Closing tab in tabHost

我正在使用android開發聊天應用程序。 現在,通過編程,我能夠根據需要添加任何選項卡。 但是問題是我無法關閉單個標簽。 tabhost.clearAllTabs關閉所有選項卡。 當另一個用戶離開聊天窗口時,我想關閉特定選項卡。 是否可以使用tabhost? 雖然沒有直接關閉標簽的方法,但是有沒有間接關閉標簽的方法?

謝謝。

更新:

TabHost tabHost;
public class TActivity extends TabActivity {

    tabHost = getTabHost();                 
}

public void addTAb(){

        TabSpec tabSpec = tabHost.newTabSpec("counter:"+counter);    

        View tab = LayoutInflater.from(getTabHost().getContext()).inflate(R.layout.tab, null);              
        tabSpec.setIndicator(tab);          
        Intent tabIntent = new Intent(this, Foo.class);
        tabSpec.setContent(tabIntent);  

        tabHost.addTab(tabSpec);        

        tabHost.setCurrentTabByTag(--);
        tabCounter = tabCounter +1;
}

您是否嘗試過類似以下代碼的內容:

myTabhost.getTabWidget()
    .removeView(myTabhost.getTabWidget()
    .getChildTabViewAt(myTab)); // myTab is the one you want to close  

我在以下問題上看到了這一點:以編程方式關閉TabHost

希望您能得到預期的結果。

要關閉選項卡,我做了下面的把戲,終於成功了。

首先,我設置了一個默認選項卡,並在本地維護了所有新選項卡的列表。

//local list
private LinkedList<String> tabList = new LinkedList<String>();  
//adding tab
TabSpec tabSpec = tabHost.newTabSpec(tab_id);   
tabHost.addTab(tabSpec);
//making local entry
tabsList.add(tab_id);   

然后使用以下代碼刪除特定的標簽,

tabHost.getTabWidget().getChildTabViewAt(tabHost.getCurrentTab()).setVisibility(View.GONE);

然后從本地列表中選擇最后一個標簽,並使用以下代碼切換到該標簽,

String tabid = tabList.getLast();     
tabHost.setCurrentTabByTag(tabid);

最后一步不是強制性的,但是如果不切換到另一個選項卡,有時我無法正確獲取tabHost視圖。 如果所有選項卡都已關閉,則切換到默認選項卡。

希望對您也有用。

如果有人找到更好的方法,請告訴我們。

謝謝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM