[英]How to save state of fragment in navigation drawer
I'm using google navigation drawer library from the following link... https://github.com/Arasthel/GoogleNavigationDrawerMenu 我正在通过以下链接使用Google导航抽屉库... https://github.com/Arasthel/GoogleNavigationDrawerMenu
See code below: 参见下面的代码:
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");
}
}
});
My fragments are using async task and whenever I switch between these fragments the async task is loading again. 我的片段正在使用异步任务,每当我在这些片段之间切换时,异步任务就会再次加载。
So How can I save the state of the fragment? 那么,如何保存片段的状态?
Instead of creating new fragment every time you can keep an array of fragments and just return the same object: 无需每次都创建一个新片段,而是可以保留一个片段数组并只返回相同的对象:
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");
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.