[英]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.