2017-01-01 3 views
1

ФоновыйViewPager фрагмент нагрузки, даже если родительский фрагмент не является активным

У меня одного вида деятельности, в моем приложении, которое загружает 2-фрагментов на основе некоторого выбора пункта меню

public class ActivityMain extends AppCompatActivity{ 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     if(savedInstanceState == null) { 
      loadFragment(1); // DEFAULT FRAGMENT, AT THE BEGINNING 
     } 
    } 
    .......................... 
    .......................... 
    // This method is called above, ALSO onItemClick in the Navigation Drawer (code not included for brevity) 
    public void loadFragment(int position) { 
     Fragment fragment = null; 
     switch (position) { 
      case 1: 
       fragment = new Fragment1(); 
       break; 
      case 2: 
       fragment = new Fragment2(); 
       break; 
      default: 
       break; 
     } 
     if (fragment != null) { 
      getFragmentManager().beginTransaction().replace(R.id.fragment_container, fragment, "frag_" + position).addToBackStack(null).commit(); 
     } 
    } 
} 

«Fragment1» является простой фрагмент с фиксированным текстом в TextView. «Fragment2» использует SlidingTabLayout для загрузки фрагмента «FragmentViewPager» в viewpager с помощью FragmentStatePagerAdapter.

Проблемы я столкнулся:

Даже если удалить "FRAGMENT2" от макета кадра в данном виде деятельности (.. С использованием getFragmentManager() BeginTransaction() удалить), фрагмент "FragmentViewPager" не разрушаются, скорее он возобновляется каждый раз, когда активность возобновляется.

Вопрос

Почему FragmentViewPager не разрушается с "FRAGMENT2"?

+0

Где находится запрос loadFragment() в действии – Godwin

+0

В двух местах .. 1) in onCreate method IF savedInstanceState == null ... и 2) В событии onClick в элементах Navigation Drawer. – abdfahim

+0

Хорошо, еще один, Где FragmentViewPager lcalled? – Godwin

ответ

0

Если вы используете FragmentStatePagerAdapter, то это не уничтожит фрагмент, а когда вы проведете и вернетесь к этому фрагменту, он покажет старые данные без обновления. Из-за не уничтоженного viewpager.

+0

Я не говорю о swiping, скорее я удаляю «Fragment2» (который содержит viewpager) из макета фрейма активности. – abdfahim

+0

Хорошо. Есть только один способ удалить фрагмент, если вы добавили фрагмент вручную, вы можете сослаться на эту ссылку [ссылка] http://stackoverflow.com/questions/10396321/remove-fragment-page-from-viewpager-in-android –

Смежные вопросы