1. 程式人生 > >Android中橫豎屏切換載入不同佈局導致fragment資料丟失的問題

Android中橫豎屏切換載入不同佈局導致fragment資料丟失的問題


親們好,求助大神,改了好長時間也沒搞定這個問題,圖上的四幅圖依次為豎屏切橫屏,再次切豎屏,再切橫屏的效果,當再次切換豎屏的時候資料就沒有顯示了。我設定了android:configChanges="screenSize|orientation|keyboardHidden",所以在橫豎切換的時候只會執行
  @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);

        if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
            //橫屏
            setContentView(R.layout.layout_rankingstatistics_land);
             initDefineLand();
             addListenerLand();
         
           
        } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
            //豎屏
            setContentView(R.layout.layout_rankingstatistics);
            initDefine();
            initOperation();

        }
    }
豎屏的總佈局是一個viewpager上載入了4個fragment,而橫屏是2個viewpager上各載入2個fragment!載入fragment是在主的activity中執行的,資料載入都是在fragment中執行,我知道有些人要說設定這個activity讓他橫豎屏切換的時候重新執行生命週期,這個行不通,因為我們這個框架特殊。
在每次重新初始化佈局的時候我都有去重新new Fragment!我把生命週期打印出來的時候,只是在第一次切換的時候執行了fragment的生命週期,後面都不會執行了,然後我用廣播通知到fragment去重新用adapter載入資料,走debug的時候,資料什麼都有,但是就是不顯示出來!實在是搞不定啊,求大神幫我指點迷津。由衷感謝了!