如何使用Tabs和Pager示例替换ActionBarSherlock中选项卡使用的片段?

时间:2012-10-24 08:14:36

标签: android tabs actionbarsherlock

我的问题与this类似。但是,它更一般: 让我试着解释一下:我正在使用带有Tabsadapter和Viewpager的ActionBarSherlock。我用自己的片段替换了所有片段,现在我的一个片段中有一个按钮,当点击它时,会启动以下onclick处理程序:

public void onAcceptSelected() {

    SherlockFragment addFirstChildFragment = AddChildFragment.newInstance();
    getSupportActionBar().setTitle("The new title of the fragment here");
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
     ft.replace(R.id.pager, addFirstChildFragment);
     ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
     ft.addToBackStack(null);
     ft.commit();

}

问题是新片段中的以下方法:

public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
     View v = inflater.inflate(R.layout.fragment_childeditor, container, false);
    return v;
 }

不会导致实际提供新的可见布局:选项卡的内容为空(例如,我看到一个全白色的主题空标签)。

现在我有以下问题:

我的主要问题是:“我应该如何替换标签中的片段?” 带子问题:

  1. 我应该调整Tabs和Pager示例的XML并将其与片段容器相匹配吗?
  2. 使用标签和包含许多片段的viewpager的最佳做法是什么?因为我想使用标签作为我的主导航,但我会有很多不同的片段。

2 个答案:

答案 0 :(得分:1)

它相当简单。只需更改与选项卡关联的片段,就像更换其他片段一样。

            Fragment donorpage = new DonorRegistrationPage(); // new fragment for the tab

            FragmentTransaction transaction = getFragmentManager().beginTransaction();

            transaction.replace(R.id.fragment_container, donorpage, "frag");

            transaction.addToBackStack(null);

            // Commit the transaction
            transaction.commit();

这应该替换选项卡的片段。

答案 1 :(得分:0)

答案在于这个问题的答案 Actionbarsherlock + tabs + multi fragments?

我的问题的答案是: 1.不,这不是必要的:我可以添加programaticllay。 2.我可以使用fragmentstacks,如上面链接中的示例所示。