今天在開發時遇上一個問題,我用的框架是底部菜單四個按鈕+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