2013-03-17 2 views
4

Мне нужны мои фрагменты, чтобы всегда вызывать определенную функцию, когда они являются активным фрагментом, поэтому я помещаю его в onResume(), но он не вызывается.Фрагмент onResume() не вызывается при использовании FragmentPagerAdapter

фрагмента А

@Override 
public void onResume(){ 
    super.onResume(); 
    Log.d("clear state", " "+clear); 
    if(clear == true) 
    { 
     restart(); 
     clear = false; 
     calculate(); 
    } 
} 

Я использую FragmentPagerAdapter с ViewPager для переключения фрагментов

public class ScoutingFragSingle extends FragmentPagerAdapter{ 


@Override 
public Fragment getItem(int index) { 
    Bundle data = new Bundle(); 
    switch(index){ 
    case 0: 
     TeamsFragment teamsFragment = new TeamsFragment(); 
     data.putInt("current_page", index+1); 
     teamsFragment.setArguments(data); 
     return teamsFragment; 
    case 1: 

     data.putInt("current_page", index+1); 
     data.putInt("matchId", matchNum); 
     aFragment.setArguments(data); 
     return aFragment; 

Так как я сделал бы фрагменты называть их onResume()?

ответ

5

У меня была такая же проблема, как и раньше.

Создание нового интерфейса и реализовать его как ваши Fragment с:

public interface OnPageSelectedListener { 
    void onPageSelected(); 
} 

В родительском деятельности осуществлять android.support.v4.view.ViewPager.OnPageChangeListener и вызвать Fragment метод, как это:

@Override 
public void onPageSelected(int i) { 
    OnPageSelectedListener fragment = (OnPageSelectedListener ((PlaceListPagerAdapter)pager.getAdapter()).getFragment(i); 
    fragment.onPageSelected(); 
} 

PS: имя нового интерфейс и его метод немного запутывают, поэтому будьте осторожны или измените его.

+0

это правильно –

2

Переопределение Fragment.setUserVisibleHint. Когда setUserVisibleHint is true вызывают ту же логику, которую вы используете для onResume.

Вы можете видеть, когда FragmentPagerAdapter звонки setUserVisibleHint в instantiateItem и setPrimaryItem. Применимо к android с 4.2.1 и support-v4.

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