2014-07-22 124 views
0

我使用谷歌导航抽屉库从以下链接... https://github.com/Arasthel/GoogleNavigationDrawerMenu如何保存片段的状态在导航抽屉

下面

见代码:

mDrawer.setOnNavigationSectionSelected(new GoogleNavigationDrawer.OnNavigationSectionSelected() { 
     @Override 
     public void onSectionSelected(View v, int i, long l) { 
      Fragment fragment = null; 
      switch (i) { 
      case 0: 
       // fragment = new HomeFragment(); 
       break; 
      case 1: 
       fragment = new NewsFragment(); 

       break; 
      case 2: 
       fragment = new TransferFragment(); 
       break; 
      case 3: 
       fragment = new BlogsFragment(); 
       break; 
      case 4: 
       fragment = new FixturesFragment(); 
       break; 
      case 5: 
       fragment = new BestXIFragment(); 
       break; 
      case 6: 
       fragment = new FeedFragment(); 

       break; 

      default: 
       break; 
      } 
      if (fragment != null) { 
       FragmentManager fragmentManager = getFragmentManager(); 
       fragmentManager.beginTransaction() 
         .replace(R.id.main, fragment).commit(); 

      } else { 
       // error in creating fragment 
       Log.e("MainActivity", "Error in creating fragment"); 
      } 
     } 
    }); 

我的片段是使用异步任务每当我在这些片段之间切换异步任务再次加载。

那么如何保存片段的状态?

+0

我的猜测是,你需要使用片段堆栈中类似如下的方式: http://stackoverflow.com/questions/16652071/android-single-instance-of-a-fragment – EpicPandaForce

回答

0

不是创造每一次新的片段,你可以保持片段的阵列,只是返回相同的对象:

mDrawer.setOnNavigationSectionSelected(new GoogleNavigationDrawer.OnNavigationSectionSelected() { 

Fragment[] fragments ={new HomeFragment(),new NewsFragment(), new TransferFragment(), new BlogsFragment(),new FixturesFragment() , new BestXIFragment(),new FeedFragment()}; 
@Override 

    public void onSectionSelected(View v, int i, long l) { 

     if (fragment[i] != null) { 
      FragmentManager fragmentManager = getFragmentManager(); 
      fragmentManager.beginTransaction() 
        .replace(R.id.main, fragments[i]).commit(); 

     } else { 
      // error in creating fragment 
      Log.e("MainActivity", "Error in creating fragment"); 
     } 
    } 
}); 
+0

对不起@ vipul-mittal但它不工作 – Yogi

+0

里面的片段开始asych任务只是检查它是否运行 –

+0

后其中之一您执行异步任务的碎片 –