1

J'ai un TabView et viewPager
J'utilise un (une seule) base de données locale pour obtenir des données
quand je fais le changement à mon DATABASE, au moins je devrais aller à 2 onglets suivant (ou arrière) à des changements se produisent dans mon fragment viewPager (j'ai 4 onglets)
et j'avais essayé plusieurs façons comme POSITION_NONE et INVALIDATE() et ... mais ne fait aucun changement !!!
Quelqu'un pourrait-il m'aider à rafraîchir mes fragments (sur la page actuelle et d'autres pages)?ViewPager wont rafraîchissant Fragment

public class FragmentList extends Fragment { 
    public static RecyclerView TaskRecyclerView; 
    private View view; 
    private AdapterTask adapterTask; 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     view=inflater.inflate(R.layout.fragment_tasks,container,false); 
     TaskRecyclerView =(RecyclerView)view.findViewById(R.id.task_recycler); 
     DatabaseOpenHelper databaseOpenHelper=new DatabaseOpenHelper(getContext()); 
     adapterTask =new AdapterTask(getActivity(),databaseOpenHelper.getTasks()); 
     TaskRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false)); 
     TaskRecyclerView.setAdapter(adapterTask); 
     return view; 
    } 

    public static FragmentList newInstance() { 

     Bundle args = new Bundle(); 

     FragmentList fragment = new FragmentList(); 
     fragment.setArguments(args); 
     return fragment; 
    } 
} 

comme je l'ai dit qu'aucun changement se produit (même page sélectionnée()) avant de changer au moins 2 onglets ... Je veux dire par exemple quand je suis dans mon onglet no.1 je vais à onglet pas. 2 et puis n ° 3, donc le n ° 3 actualise les nouvelles données, et quand je reviens à l'onglet n ° 1, il rafraîchit aussi
mais l'onglet n ° 2 est toujours avec les anciennes données !!!
et je devrais aller à l'onglet n ° 4 et revenir pour voir l'onglet n ° 2 changements.

Mise à jour importante
que je me suis dit, mon problème est avec offScreenPageLimit() qui ne parvient pas 0.
comment puis-je le mettre à 0?

Répondre

0

Avez-vous essayé .notifyDataChanged(); sur votre adaptateur?

+0

oui, je l'ai essayé à bien des égards ... –

1

Utilisez la méthode notify sur onPageSelected pour actualiser les données. Votre code sera

adapterTask.notify();

+0

J'ai essayé vos conseils en onResume() dans mon fragment, mais a obtenu une erreur (la force de fermeture!) Qui dit son non verrouillé par fil ... Je l'ai fait Quelque chose ne va pas? –

+0

Vous devez actualiser l'adaptateur sur onPageSelected. Utiliser notify de notifyDataChanged –

+0

Je l'ai fait aussi ... même en changeant à FragmentStatePagerAdapter ou en essayant de se détacher et de joindre ... mais, toujours la même chose ... –

0

Essayez de remplacer cette méthode. Cette méthode vous dira est fragment visible ou non.

 @Override 
     public void setUserVisibleHint(boolean isVisibleToUser) { 
      super.setUserVisibleHint(isVisibleToUser); 
      if (isVisibleToUser) { 
// visible 
      } 
      else { 
      } 
     }