2017-09-28 2 views
1

Je suis un peu confus sur la façon dont je devrais aborder ce cas particulier de faire quelques balayages entre les fragments.ViewPager ou RecyclerView avec des fragments?

Alors oui, j'ai demandé ViewPager ou RecyclerView, parce que ces 2 sont mes seules options, si quelqu'un peut trouver une meilleure idée, il est vraiment le bienvenu.

Le flux est le suivant, j'ai un scénario principal (ListView), chaque élément ouvre un fragment avec des détails à ce sujet. Ce que je voudrais vraiment faire est de glisser entre ces fragments en plein écran sans retourner à MTL et ouvrir un autre élément de la liste.

Vous me demandez ce que j'ai essayé, bien: RecyclerView - HORIZONTALLY oriented en tant que racine du fragment, et chaque élément de ce RV avait les détails de chaque événement. Le problème avec ceci est qu'il devient vraiment buggé parce que j'ai une énorme logique à l'intérieur de chaque élément (comme, un autre RV - horizontally, un PagerView also horizontally pour faire glisser entre les images (ou un cadre youtube qui est joué si c'est le cas. des choses dans ce domaine, de sorte que la logique de RV mère à l'intérieur du onBindViewHolder() est vraiment délicat.

serait préférable d'utiliser un PagerView avec des fragments (puisque j'ai le genre DetailsFragment de prêt)? le problème est ici que je besoin d'un certain nombre de grands coups, non? Whole Fragment

Répondre

2

Go avec viewpager.

Parce que la création de fragments À l'intérieur de recyclerview provoque des performances de recyclerview à ralentir.Aussi pour créer des fragments dans onBindViewHolder() dynamiquement chaque fois que vous avez besoin de différents ID unique de mise en page de trame à charger qui sera difficile à générer.

Pour plus d'informations sur la raison pour laquelle la vue recycleur est une mauvaise idée pour charger des fragments, vérifiez ceci.

Fragment replacing in RecyclerView item

également essayer d'utiliser la ViewPager avec une mise en œuvre de FragmentStatePagerAdapter. L'adaptateur optimisera l'utilisation de la mémoire en détruisant les fragments qui ne sont pas visibles à un moment donné.

Consultez la documentation pour plus de détails et l'exemple de code.

https://developer.android.com/reference/android/support/v4/app/FragmentStatePagerAdapter.html

+0

Oui, je sais, déjà une sorte de fait cela et était si buggy. Mais comme je l'ai dit, le problème avec viewpager serait le nombre de balayages. Tout d'abord j'ai 20 items en MTL, mais il y en a beaucoup plus (quand je suis en bas je demande plus au serveur) –

+0

oui je sais..parce que précédemment j'avais essayé d'utiliser des fragments recyclés dans l'un des projet.Il est très buggy et difficile à utiliser. Comme je l'ai dit, essayez d'utiliser FragmentStatePagerAdapter au lieu de FragmentPagerAdapter, car il améliorera les performances. – Anonymous

+0

Merci pour votre réponse. Une question de plus, qu'en est-il de mon balayage intérieur? Parce que c'est le balayage de ViewPager (qui est horizontal) et à l'intérieur je vais avoir un autre viewPager + un RV (les deux aussi horizontalement). –