1

我的问题与此类似。但是,它更笼统一些:让我尝试解释一下:我正在使用带有 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. 使用选项卡和具有许多片段的查看器的最佳实践是什么?因为我想使用标签作为我的主要导航,但我会有很多不同的片段。
4

2 回答 2

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();

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

于 2013-11-24T16:18:47.170 回答
0

答案就在这个问题的答案 Actionbarsherlock + tabs + multi fragment?

我的问题的答案是: 1. 不,这不是必需的:我可以通过编程方式添加它们。2. 我可以使用片段堆栈,如上面链接中的示例所示。

于 2012-11-06T12:23:26.197 回答