我有一个片段,在那里,我声明了一个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?
答案 0 :(得分:2)
不幸的是,一旦您将TabSpec
添加到FragmentTabHost
,就无法访问Map
。您必须在类中定义一些数据结构(可能是TabSpec
或派生),您为每个选项卡存储.clearAllTabs()
,当您想要删除一个时,您将不得不调用FragmentTabHost
上的Map
并循环播放TabSpec
以再次添加除{1}}之外的所有{{1}}。