В настоящее время я использую навигационный ящик для Android-приложения Android. В моем первом фрагменте у меня есть фрагмент, который загружает данные, используя API-интерфейс Facebook Graph. Таким образом, когда приложение впервые загружается, оно сначала переходит к первому фрагменту.
Затем я использую навигационный ящик, чтобы щелкнуть другой фрагмент и просмотреть его.
И наконец, я снова использую навигационный ящик, чтобы вернуться к первому фрагменту и просмотреть его.
Моей проблемой, с которой я столкнулся, является то, как я могу использовать фрагмент, который был создан один раз, вместо повторного его создания всякий раз, когда выбран пункт "Ящик навигации". Мой код для переключения фрагментов приведен ниже.
private void displayView(int position) {
// update the main content by replacing fragments
Fragment fragment = null;
switch (position) {
case 0:
fragment = new SelectionFragment();
break;
case 1:
fragment = new HomeFragment();
break;
case 2:
fragment = new PhotosFragment();
break;
case 3:
fragment = new CommunityFragment();
break;
case 4:
fragment = new PagesFragment();
break;
case 5:
fragment = new SplashFragment();
break;
default:
break;
}
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
setTitle(navMenuTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
}
Я заметил, что действительно есть "новый" экземпляр фрагмента каждый раз, когда выбран параметр. Как я могу реализовать логику создания экземпляра фрагмента ONCE и повторно использовать его, так что мне не нужно постоянно загружать фрагмент снова и снова.