如何从FragmentTabHost中删除tabspec?

时间:2014-04-18 12:37:50

标签: android 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?

1 个答案:

答案 0 :(得分:2)

不幸的是,一旦您将TabSpec添加到FragmentTabHost,就无法访​​问Map。您必须在类中定义一些数据结构(可能是TabSpec或派生),您为每个选项卡存储.clearAllTabs(),当您想要删除一个时,您将不得不调用FragmentTabHost上的Map并循环播放TabSpec以再次添加除{1}}之外的所有{{1}}。