0

我有一个 ViewPager 来实现“持有人”片段之间的滑动。在它们内部,我需要将多个片段添加到它们各自的容器中。

问题是,我正在使用FragmentTransaction.add(containerID, fragment);,但由于 ViewPager 中有多个持有者片段,所有片段都被添加到同一个持有者片段上,而不是在调用添加它们的那个片段中。

任何人都知道解决这个问题的好习惯吗?

这是我在持有者片段中添加片段的代码。

arrayFragments = new ArrayList<DiaAgendaFragment>();
DiaAgendaFragment objFragment;
FragmentManager fm = getFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();

//this will be set accordingly later for each fragment
Time dataFragment = new Time();
dataFragment.setToNow();

//instantiate and set fragments
for (int i = 0; i < 5; i++) {

    objFragment = DiaAgendaFragment.newInstance(5, dataFragment);
    arrayFragments.add(objFragment);
    //pega a View pelo nome e adiciona o fragment
    transaction.add(getActivity().getResources().getIdentifier("agenda5d_activity_fragment"+i, "id", getActivity().getPackageName()), arrayFragments.get(i));
    //codigo de teste
    dataFragment.monthDay += 1;
}
transaction.commit();
4

1 回答 1

3

FragmentManager如果要添加Fragments到另一个,则必须使用孩子Fragment。正如您自己发现的那样,使用正常FragmentManager将不起作用。

在你的Fragment

FragmentManager manager = getChildFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
...
transaction.commit();
于 2014-06-03T16:12:09.673 回答