Fragmento de atualização do ViewPager ao deslizar

Eu tenho um problema com o qual tenho lutado nos últimos 2 dias.

Eu estou construindo um aplicativo que usa ActionBar, ViewPager & FragmentPagerAdapter. O código para a atividade, fragmentos e FragmentPagerAdapter são exatamente como os indicados no exemplo android emhttp://developer.android.com/reference/android/support/v4/view/ViewPager.html

O problema que estou enfrentando é - supondo que eu tenha apenas 2 fragmentos no viewPager. ao trocar / passar entre os dois, os fragmentos não estão sendo atualizados. onResume não é chamado porque o viewPager armazena no mínimo 1 fragmento em qualquer lado do fragmento exibido.

Eu tentei usar o onTabSelected para detectar quando um fragmento é selecionado e, em seguida, iniciar um método desse fragmento com a ajuda de uma interface (código abaixo).

public void onTabSelected(Tab tab, FragmentTransaction ft) {
    TabInfo tag = (TabInfo)tab.getTag();
    for (int i=0; i<mTabs.size(); i++) {
        if (mTabs.get(i) == tag) {
            mViewPager.setCurrentItem(i);
        }
    }
    ((IStartStop)getItem(tab.getPosition())).Start();
}

No entanto, quando o método Start é usado, um NullPointerException é disparado ao tentar atualizar uma visualização de texto. O código do método de início é:

public void Start() {
    TextView tv = _view.findViewById(R.id.text);
    tv.setText("test");
}

A exceção é lançada na linha:

TextView tv = _view.findViewById(R.id.text);

A interface IStartStop é bastante simples:

public interface IStartStop {
    public void Start();
    public void Stop();
}

Eu não quero usar notifyDataSetChanged (); com POSITION_NONE, porque toda vez que eu passo para um novo fragmento, demora alguns segundos para carregar os fragmentos

Neste momento, os fragmentos incluem apenas uma visão de texto, no futuro eles terão uma animação e por isso é importante:

1- Apenas execute uma animação quando o fragmento for selecionado e não quando o fragmento próximo a ele for selecionado (a maneira como o ViewPager armazena em cache e reinicia os fragmentos).

2- Pare a animação quando o fragmento não estiver mais selecionado para evitar o desperdício de recursos do dispositivo.

Sim, eu já verifiquei tudo disponível na internet, mas nada parece funcionar comigo.

Muito obrigado pela sua ajuda!

questionAnswers(4)

yourAnswerToTheQuestion