Je conçois une vue avec plusieurs pages. Je veux que les bords des pages précédentes et suivantes soient affichés comme ci-dessous et implémenter un balayage à 2 doigts pour basculer entre les pages.
J'ai essayé d'utiliser ViewPager
avec une marge de page négative comme suggéré ici, mais cela ne montre que l'un des bords de l'écran, pas les deux simultanément.
Sinon, est-il possible de positionner une partie de ma vue à l'extérieur de l'écran, puis de l'animer en lui donnant un ViewPager
effet de type.
Comment dois-je m'y prendre? Merci !
android
android-viewpager
viewflipper
viewanimator
Gaurav Arora
la source
la source
Réponses:
Me citant d' un article de blog sur ce sujet :
la source
J'ai une solution similaire:
Sur le viewpager, réglez le rembourrage gauche et droit, par exemple 20dp. Définissez également la marge de page sur le visionneur, par exemple la moitié du remplissage du pageur. Et n'oubliez pas de désactiver le remplissage du clip.
la source
Définissez le remplissage gauche et droit pour la vue entière de l'élément Exemple xml (page_item.xml):
Ensuite, définissez une marge de page négative
PageView
égale à 2 * (remplissage de la vue précédente)Optionnel. Définissez zéro remplissage à gauche pour le premier élément et zéro remplissage à droite pour le dernier élément pour masquer les bords vides. Vous pouvez le faire dans la classe
PageAdapter
ouPage
fragment.la source
Pour afficher l'aperçu des pages gauche et droite, définissez les deux valeurs suivantes
Si vous avez besoin d'espace entre deux pages dans le viewpager, ajoutez viewpager.setPageMargin (int)
Android ViewPager - Afficher l'aperçu de la page à gauche et à droite
la source
si quelqu'un cherche encore une solution, j'avais personnalisé la ViewPage pour y parvenir sans utiliser de marge négative, trouvez un exemple de projet ici https://github.com/44kksharma/Android-ViewPager-Carousel-UI cela devrait fonctionner dans la plupart des cas mais vous peut toujours définir la marge de page avec
mPager.setPageMargin(margin in pixel);
la source
Téléchargez le code source à partir d'ici ( ViewPager avec les limites de page précédente et suivante )
MainActivity.java
la source
Il y a quelque temps je avais besoin cette fonctionnalité et préparé une petite bibliothèque qui utilise
RecyclerView
avec PagerSnapHelper (ajoutée dans la version 25.1.0 de la bibliothèque de soutien v7) au lieu de classiqueViewPager
:MetalRecyclerPagerView - vous pouvez trouver tout le code avec des exemples ici.
Il se compose principalement d'un fichier de classe unique: MetalRecyclerViewPager.java (et de deux xml: attrs.xml et ids.xml ).
J'espère que cela aide quelqu'un :)
la source