我正在使用安卓开发聊天应用程序。现在以编程方式,我可以根据需要添加任何选项卡。但问题是我无法关闭单个选项卡。 tabhost.clearAllTabs
关闭所有选项卡。我想在另一个用户离开聊天窗口时关闭特定选项卡。可以使用标签主机吗?虽然没有直接关闭选项卡的方法,但是否有任何间接方法可以关闭选项卡?
谢谢。
更新:
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 视图,如果不切换到另一个选项卡。如果所有选项卡都已关闭,则切换到默认选项卡。
我希望它对你们也有帮助。
如果有人找到更好的方法,请告诉我们。
谢谢。