今天在开发时遇上一个问题,我用的框架是底部菜单四个按钮+fragment,然后主页中的fragment套用了PagerSlidingTabStrip,PagerSlidingTabStrip中是用Viewpager+Tab组合进行点击切换页面或者滑动切换菜单,就这样实现了我想要的功能,可是当我在底部菜单中相互切换时,PagerSlidingTabStrip中的Viewpeger消失了,这是怎么产生的呢?官方的Demo没有组合起来使用,所以没有问题,现在组合后问题就出来了,我换用了几个方法都没有解决,后来在查的过程中发现了这个问题。
原来Demo是在activity中使用的,所以用法如下:
noScrollPager.setAdapter(new TabSeclectAdapter(getSupportFragmentManager(),titles)); pagerSlidingTabs.setViewPager(noScrollPager); |
现在我是使用到fragment中来了,fragment中是没有getSupportFragmentManager()这个方法的,所以当时就按照提示替换成了getFragmentManager(),这样代码没有错,初始化进来的时候也没有问题,可是当我反复切换底部菜单的时候,再返回到主页面,这个Viewpager就消失了,经过多方排查后,将此处改变一下问题就解决
noScrollPager.setAdapter(new TabSeclectAdapter(getChildFragmentManager(), arrTitles)); pagerSlidingTabs.setViewPager(noScrollPager); |
如此问题解决,其实这个问题也是我无意中暴露出来的,如果当时直接替换成了getChildFragmentManager(),这个问题就不会出来了,但是不出来也让我发现不了这样的问题,所以平时中的问题若有若现,一切都在变化中,后来我发现了一篇博客,问题跟我的一样,如果我叙述中有不了解的,可以参考一下这篇博客,博主还附加图片,本人因现在的项目的原因,不便出图,还处于保密阶段,望谅解!
参考博客:http://blog.csdn.net/mybook1122/article/details/24003343