我正在使用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;
}
答案 0 :(得分:0)
你有没有试过这样的代码:
myTabhost.getTabWidget()
.removeView(myTabhost.getTabWidget()
.getChildTabViewAt(myTab)); // myTab is the one you want to close
我在这个问题上看到了这个问题:Close tab programmatically TabHost
希望你能得到预期的结果。
答案 1 :(得分:0)
要关闭标签,我做了以下技巧&最后它有效。
第一,我设置了一个默认选项卡&在本地维护所有新选项卡的列表。
//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);
然后从本地列表中选择最后一个标签&amp;使用以下代码切换到该选项卡
String tabid = tabList.getLast();
tabHost.setCurrentTabByTag(tabid);
最后一步不是强制性的,但有时我没有正确查看tabHost视图,如果不切换到另一个标签页。如果所有选项卡都已关闭,请切换到默认选项卡。
我希望它对你们也有用。
如果有人找到更好的方法,请告诉我们。
谢谢。