ViewPager 片段未显示在嵌套片段中
ViewPager fragments are not shown in nested fragment
我有一个带导航菜单的 activity(我正在使用 android 的 NavigationDrawer
class)。菜单有N个条目,每个条目对应activity中的一个Fragment
。在 activity 创建时,我执行以下操作:
mFragment1 = new Fragment1();
mFragment2 = new Fragment2();
mFragment3 = new Fragment3();
...
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.add(R.id.frameLayout1, mFragment1);
transaction.add(R.id.frameLayout1, mFragment2);
transaction.add(R.id.frameLayout1, mFragment3);
...
transaction.hide(mFragment1);
transaction.hide(mFragment2);
transaction.hide(mFragment3);
...
transaction.commit();
然后我让 mFragment1
可见调用 show
。
当用户点击菜单时:
transaction.hide(mVisibleFragment);
mVisibleFragment = mFragmentN;
transaction.show(mVisibleFragment);
transaction.commit();
每个片段都包含 ViewPager
以及一些其他片段和选项卡 header。我使用 FragmentStatePagerAdapter
作为适配器并在 onCreateView
:
中构建寻呼机
pager.setAdapter(new MyFragmentStatePagerAdapter(getFragmentManager());
我只能看到第一个菜单的 ViewPager
内容(mFragment1
最初已显示)。当我切换到另一个菜单片段时,我可以滑动页面并看到所选选项卡发生变化,但我看不到页面本身。
谁能指出我的错误,最重要的是,解释一下发生了什么?
我找到了我的错误。
我使用 getFragmentManger()
而不是 getChildFragmentManager()
来创建 ViewPager
适配器。
希望我的解决方案对某人有所帮助。
我有一个带导航菜单的 activity(我正在使用 android 的 NavigationDrawer
class)。菜单有N个条目,每个条目对应activity中的一个Fragment
。在 activity 创建时,我执行以下操作:
mFragment1 = new Fragment1();
mFragment2 = new Fragment2();
mFragment3 = new Fragment3();
...
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.add(R.id.frameLayout1, mFragment1);
transaction.add(R.id.frameLayout1, mFragment2);
transaction.add(R.id.frameLayout1, mFragment3);
...
transaction.hide(mFragment1);
transaction.hide(mFragment2);
transaction.hide(mFragment3);
...
transaction.commit();
然后我让 mFragment1
可见调用 show
。
当用户点击菜单时:
transaction.hide(mVisibleFragment);
mVisibleFragment = mFragmentN;
transaction.show(mVisibleFragment);
transaction.commit();
每个片段都包含 ViewPager
以及一些其他片段和选项卡 header。我使用 FragmentStatePagerAdapter
作为适配器并在 onCreateView
:
pager.setAdapter(new MyFragmentStatePagerAdapter(getFragmentManager());
我只能看到第一个菜单的 ViewPager
内容(mFragment1
最初已显示)。当我切换到另一个菜单片段时,我可以滑动页面并看到所选选项卡发生变化,但我看不到页面本身。
谁能指出我的错误,最重要的是,解释一下发生了什么?
我找到了我的错误。
我使用 getFragmentManger()
而不是 getChildFragmentManager()
来创建 ViewPager
适配器。
希望我的解决方案对某人有所帮助。