我有一个 fragment ,在其中,我声明了一个 FragmentTabHost。
public class ComFragment extends Fragment{
...
private FragmentTabHost mTabhost;
...
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
...
return mTabhost;
}
...
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.com_tabhost, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
...
switch (item.getItemId()) {
case R.id.action_clear:
break;
case R.id.action_close:
int index = mTabhost.getCurrentTab();
/*\ How can i remove current tab at here?*/
break;
default:
break;
}
return true;
}
}
单击项目时如何删除当前的 tabspec?
最佳答案
不幸的是,一旦将 TabSpec
添加到 FragmentTabHost
,就无法访问它。您必须在类中定义一些数据结构(可能是 Map
或派生类),在类中存储每个选项卡的 TabSpec
,当您想要删除一个时,你必须在 FragmentTabHost
上调用 .clearAllTabs()
并循环你的 Map
以再次添加所有 TabSpec
除了您要删除的那个。
关于android - 如何从 FragmentTabHost 中删除 tabspec?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23154325/