J'ai eu le même problème à la seule différence que j'avais besoin d'afficher 3 pages à la fois (pages précédente, actuelle et suivante). Après une très longue recherche de la meilleure solution, je pense l'avoir trouvée. La solution est un mélange de quelques réponses ici :
Comme le dit @Paul Lammertsma réponse a souligné - le code de Dave Smith dans le blog de Mark Murphy est la base de la solution. Le seul problème pour moi était que le ViewPager
n'était que sur la partie supérieure de l'écran en raison de la taille qu'ils lui donnent dans le fichier xml :
android:layout_width="150dp"
android:layout_height="100dp"
Ce qui n'était pas bon pour mon objectif puisque je cherchais quelque chose qui s'étale sur tout l'écran. Je l'ai donc modifié pour envelopper le contenu comme vous pouvez le voir ici :
<com.example.nutrino_assignment.PagerContainer
android:id="@+id/pager_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#CCC">
<android.support.v4.view.ViewPager
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
</com.example.nutrino_assignment.PagerContainer>
Maintenant, j'ai perdu tout l'effet de ce que le tutoriel essayait de faire. En utilisant la méthode de @andro réponse J'ai pu afficher plus d'une page à la fois : exactement deux ! La page actuelle et la suivante. Je l'ai fait en surchargeant comme suit :
@Override
public float getPageWidth(int position) {
return(0.9f);
}
C'était presque ce dont j'avais besoin... (même si je pense que c'est suffisant pour ce que vous demandiez), mais pour les autres qui pourraient avoir besoin de quelque chose comme ce dont j'avais besoin : Pour la dernière partie de la solution j'ai utilisé l'idée dans cette réponse encore par @Paul Lammertsma. Dans le code de Dave Smith, vous trouverez dans le fichier onCreate
cette ligne :
//A little space between pages
pager.setPageMargin(15);
que j'ai remplacé par :
//A little space between pages
pager.setPageMargin(-64);
maintenant sur la première page regarde :
|view 1|view 2|view 3|
|screen |
alors que sur le 2ème, ça ressemble à :
|view 1|view 2|view 3|
|screen |
J'espère que cela aidera quelqu'un ! J'ai perdu deux jours à le faire... Bonne chance.
0 votes
Avez-vous essayé de faire une maquette pour voir si cela fonctionne ? Il me semble que cela ne prendrait pas beaucoup de temps de le coder et de l'essayer.
0 votes
Le téléaffichage lui-même limite chaque vue à l'ensemble de l'écran. La raison pour laquelle j'ai publié ce message est de savoir si quelqu'un a de l'expérience avec le View Pager et s'il est possible d'afficher plus de deux vues sur le même écran.
1 votes
Utiliser ce lien et remplacer la méthode onInterceptTouchEvent et y retourner faux .
0 votes
Duplicata possible de Plusieurs pages en même temps sur un ViewPager