ViewPager mise à jour fragment de balayage

j'ai un problème que j'ai été aux prises avec, pour les 2 derniers jours.

Je suis à la construction d'une application qui utilise ActionBar, ViewPager & FragmentPagerAdapter.
Le code de l'Activité, des Fragments, & FragmentPagerAdapter sont exactement comme ceux qui sont indiqués dans l'android exemple sur http://developer.android.com/reference/android/support/v4/view/ViewPager.html

Le problème, je suis confronté est -- en supposant que j'ai seulement 2 fragments dans le viewPager. lors de la commutation/glisser entre les deux, les fragments ne sont pas d'être mis à jour. onResume n'est pas appelé parce que le viewPager caches un minimum de 1 fragment de chaque côté de l'affiche fragment.

J'ai essayé d'utiliser le onTabSelected de détecter si un fragment est sélectionné, puis démarrer une méthode à partir de ce fragment avec l'aide d'une interface (code ci-dessous).

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();
}

Toutefois, lorsque la méthode de Démarrage est utilisé d'une NullPointerException est déclenché lorsque vous tentez de mettre à jour un textview. La méthode de démarrage de code est:

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

L'exception est levée, à la ligne:

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

La IStartStop interface est assez simple:

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

Je ne veux pas utiliser notifyDataSetChanged(); avec POSITION_NONE parce que à chaque fois que je balayez vers un nouveau fragment, il faut quelques secondes pour charger les fragments

À cette époque, les fragments ne présentent qu'un textview, dans l'avenir, ils auront une animation et il est donc important de:

1 - l'exécution d'une animation lorsque le fragment est choisi et non pas lorsque le fragment suivant est sélectionné (la façon ViewPager caches et reprend des fragments).

2 - Arrêter l'animation lorsque le fragment n'est plus sélectionnée pour éviter de gaspiller les ressources du périphérique.

Oui, j'ai déjà tout vérifié sur internet mais rien ne semble fonctionner avec moi.

Merci beaucoup pour votre aide!

InformationsquelleAutor Steve | 2013-12-05