在Android中隐藏/显示ViewPager

时间:2012-11-07 11:54:50

标签: android android-fragments android-viewpager android-view

我有这个应用程序结构:

  1. 使用全局菜单和Fragment容器的MainActivity。
  2. 首先FragmentViewPager,共有三页。
  3. 第二个Fragment:列表
  4. 我将Fragment插入MainActivity中的OnCreate(),并使用show和hide更改其可见性(使用FragmentTransaction)。

    当我启动应用时,第一个Fragment出现在屏幕上没有问题,当更改为第二个Fragment也像魅力一样,但当我回到第一个Fragment时该应用不会在ViewPager内显示任何内容。

    我是否需要在ViewPager中更改以解决此问题?

2 个答案:

答案 0 :(得分:1)

问题似乎是因为android不允许嵌套片段。在我的情况下,我可以使用简单的视图而不是ViewPager中的片段来管理情况。

答案 1 :(得分:1)

我使用ViewStub来显示/隐藏ViewPager。

基本思路是你在布局文件中创建了ViewStub,并在必要时使用inflate / setVisible。

唯一的技巧是,我不得不将setAdatper设置为null,否则它会在关闭和屏幕上重新创建时崩溃。

@Override
public void onDestroyView() {
    super.onDestroyView();

    viewPager.setAdatper(null);
}