Glissez comme Pinterest ou Tumblr
Quelqu'un a une idée de comment Pinterest ou Tumblr a mis en place il y "glissez" la méthode.
c'est à dire sur Pinterest, vous pouvez cliquer sur un post sur le fil d'actualités. Que le DetailActivity
est lancé et affiche les détails pour le poste choisi. Que vous pouvez appuyer sur le bouton retour pour revenir à la news feed activité, ou vous pouvez glisser (les détails de l'activité) vers la gauche pour revenir à la news feed activité.
Vidéo: http://youtu.be/eVcSCWetnTA
Normalement, je voudrais utiliser overridePendingTransition()
, mais overridePendingTransition()
prend des animations (id de Ressource comme R.anim.foo
). Pinterest et Tumblr démarrer l'animation uniquement si l'utilisateur n'a un mouvement de balayage. Ils prennent également en charge un certain genre de "en animation image par image", selon l'doigts déplacer. Sorte qu'ils de la piste à la distance du doigt déplacer et animer la transition correspondant à la valeur de pourcentage.
Je sais comment utiliser un "vrai java" Animation /AnimatorSet Objet avec FragmentTransaction
pour animer un fragment de remplacement. Avec les fragments que j'ai pour remplacer onCreateAnimator()
, mais je n'ai aucune idée de comment mettre en place quelque chose comme ça avec les Activités. Est-il un onCreateAnimator()
(ou quelque chose de similaire) pour les Activités? Également pas sûr de la façon de glisser comportement, puisque ce n'est pas le démarrage de l'animation, mais en plus, étape par étape, de la propriété de changement de la Fenêtre /Activité/Fragment ou quoi que ...
Des suggestions?
EDIT:
J'ai trouvé une vidéo de la pinterest app sur youtube: http://youtu.be/eVcSCWetnTA
C'est ce que je veux mettre en place.
Je suppose que Pinterest est de travailler avec des Fragments et des onCreateAnimator()
pour parvenir à la "glissez".
Depuis mon Application a déjà Fragment et ChildFragments dans une activité qu'il serait tellement plus facile pour moi si je pouvais mettre en œuvre que pour les Activités.
Une fois de plus: je sais comment détecter les gestes de balayage et ce n'est pas ce que je vous demande. Regarder la vidéo sur youtube: http://youtu.be/eVcSCWetnTA
Mise à JOUR:
J'ai créé une petite bibliothèque, qui n'a pas exactement le même comportement comme Pinterest ou Tumblrs mise en œuvre, cependant, pour mes applications, cela me semble être une bonne solution:
https://github.com/sockeqwe/SwipeBack?source=c
- Que vous pouvez appuyer sur le bouton retour pour revenir à la news feed activité, ou vous pouvez glisser (les détails de l'activité) vers la gauche pour revenir à la news feed activité. - Êtes-vous sûr que ce n'est pas une simple
ViewPager
? - Pas de son pas un viewpager, son une animation personnalisée pour passer d'une activité à une autre ou d'un Fragmenttransaction, si ils utilisent Fragment. Cependant, je voudrais mettre en place quelque chose comme ça pour les activités. Pour les Fragments que je peux remplacer onCreateAnimator(), mais je ne pouvais pas trouver une méthode similaire pour les Activités ...
- Pourquoi ne pas mettre en œuvre une certaine forme de geste et de détecter le point de départ et point d'arrivée de la geste et de calculer si c'était un balayez vers la gauche, puis arrêt de l'activité avec un certain type d'animation?
- Je sais comment détecter les gestes de balayage. J'ai mis à jour ma question et avons ajouté un lien vers une vidéo youtube qui montre ce que je suis à la recherche d'
- Ce sujet de l'utilisation d'un NavigationDrawer par remplir tout l'écran?
- Je ne pense pas qu'apportera l'effet désiré. Je veux dire que je pourrais utiliser SlidingMenu ou d'une autre implementatino pour faire glisser le tout windoe à gauche, mais je ne vois pas de moyen de faire de l'activité précédente pour venir sur l'écran tout en glissant.
Vous devez vous connecter pour publier un commentaire.
Il semble que l'effet que vous recherchez est l'un des échantillons pour ViewPager dans l'android du développeur de site web.
Découvrez http://developer.android.com/training/animation/screen-slide.html#depth-page , dans le page de Profondeur transformateur section. Il dispose d'une vidéo et le code source.
À l'aide d'un ViewPager.PageTransformer vous pouvez décider de la façon dont les pages se comporter lors du passage de l'un à l'autre.
La seule différence entre l'échantillon et la vidéo vous-même liée à cette gauche-droite semble être inversé, mais il devrait être un bon point de départ pour ce que j'ai vu sur le Vidéo YouTube liés à la question. Les actions sur les deux points de vue devraient être swaped. Comme indiqué dans ce morceau de code (le 1er paramètre
mPager.setPageTransformer
devrait êtrereverseDrawingOrder
= false). Remarque le milieu 2if
sections sont swaped et laposition
variable est traité un peu différent de changer de camp. Le plein d'entrain effet est laissée en exercice. S'il vous plaît partager quand vous obtenez une!Et juste au cas où la page avec l'échantillon va pouf, voici cette section du code d'origine:
Mise à jour:
fixe l'utilisation de la mémoire de problème pour ce projet et a changé le glisser vers l'arrière de style de iOS comme.
J'ai écrit une démo exactement comme Pinterest et tumblr le souhaitez,vous venez de prolonger la BaseActivity et vous obtenez un balayage à effet de retour,fonctionne en douceur!
vérifier:https://github.com/chenjishi/SlideActivity
et la capture d'écran:
J'ai trouvé un projet GitHub qui est basé sur SwipeBack comme Pinterest.
C'est vraiment un grand projet open source qui devrait résoudre votre problème. Il fait ce que vous avez besoin, comme aller à l'écran précédent en appuyant sur la touche back ou un simple glissement de doigt. Comme ce projet ayant l'option
1. Balayez de gauche à Droite
2. Balayez vers la Droite vers la Gauche
3. Balayez vers le Bas vers le haut
https://github.com/Issacw0ng/SwipeBackLayout
et également vous installer cette démo de l'application à partir de Google Play.
https://play.google.com/store/apps/details?id=me.imid.swipebacklayout.demo
Joindre Des Captures D'Écran:-
Espère que cela va vous aider.
J'ai été capable de le faire en 15 minutes, c'est pas mal pour un début. Si vous passez un certain temps, vous pourriez être en mesure de l'optimiser.
Je viens de vérifier avec la hiérarchie de la visionneuse. Il semble qu'ils sont à l'aide de ViewPager avec une capture d'écran de l'activité précédente.
Je suggère de faire le suivant:
Tout d'abord détecter le geste que l'utilisateur est en train de faire dans l'appareil. Vous pouvez vous référer à ce lien
Je ne vais pas copier le code à partir du lien ci-dessus, comme je crois que c'est la réponse
Deuxièmement, vous pouvez dans cette méthode
Faire ce qui suit comme suggéré par cette question
Ils y parlent quant à la finition d'une activité avec une animation
Espère que cela vous aide
Donc je suppose que j'ai trouvé la solution de mon auto:
Tout d'abord:
Pinterest en effet utilise un ViewPager avec une Page personnalisée Transformateur comme @frozenkoi a mentionné dans sa réponse. Vous pouvez voir le oversroll effet de bord de la vue pager dans le pinterest app.
@Amit Gupta a souligné la bibliothèque de l'activité de la diapositive. Sa jolie le même concept, à l'instar de nombreux de Navigation tiroirs ne et définit également le thème de la translucides. Ils glissent la mise en page. Mais ce n'est pas exactement ce que je cherchais, parce qu'il glisse sur le haut de l'activité vers la droite et que de simplement les appels finish(). Mais le dessous de l'activité ne sera pas animée dans le.
La solution est (et je suppose que c'est a été Tumblr) pour écrire votre propre Animation avec l'Animation d'Objets et de les animer, étape par étape.
Cela peut être fait avec ActivityOptions. À mon avis ce sera la solution.
ActivityOptions
est ajouté seulement de l'API de niveau 16!J'ai écrit un projet. Il vous permet de développer une application navigué par des Fragments facilement, effectue tout comme Pinterest.
https://github.com/fengdai/FragmentMaster
C'est peut-être pas la réponse que vous voulez. Mais j'espère que ça sera utile à quelqu'un d'autre.
J'avais à faire avec ce projet, je suis actuellement en train de travailler sur et est venu avec le code suivant. C'est peut-être pas pertinentes pour vous maintenant, mais il pourrait aider quelqu'un de nouveau dans ce post. 🙂
En gros, c'est ViewPager mise en œuvre comme vous l'avez mentionné dans votre réponse, mais je pense que c'est la plus simple et la plus rapide solution à votre question. Les inconvénients sont qu'il est seulement pour les Fragments (peut être facilement modifié pour les Objets) et si vous voulez ajouter ActionBar dans le balayage, vous avez probablement jusqu'à la fin de la création d'un programme personnalisé.
}
Ici est une activité qui met en œuvre, avec un autre ViewPager comme un SlidingMenu. (en supplément)
}