RecyclerView Animation sur l'Élément, Cliquez sur
Je suis en train de mettre en place mes propres recyclerview de l'Animation: j'aimerais réaliser cela sans l'aide de toutes les bibliothèques externes. Voici ce que l'théorique animation devrait ressembler.
L'utilisateur clique sur un élément de la Liste et une animation se produit, ce qui ouvre un autre point de Vue.
Sur un niveau élevé, avec un minimum de code, peut-être juste le pseudo-code que serait le processus afin de créer une certaine animation comme ça?
Aussi, je tiens à noter que l'animation doit pouvoir être fait en sens inverse si l'utilisateur clique sur le même objet ou un autre élément
Je ne suis pas familier avec le RecyclerView
classe et souhaitez en apprendre plus à ce sujet et les animations associées.
- Avez-vous vu cette question?
- Je pense que vous aurez besoin de faire la recherche de votre propre et de la post spécifique de la question d'après. Pour moi, c'est juste une trop grande question et apporte toute recherche dans ce juste un cela devrait-il ressembler comment puis-je le faire fonctionner. Mon avis. Joyeux Noël à vous de toute façon! 😉
- Tanis vous remercie, je n'ai pas vu cette question, mais ma ligne de pensée a été correct en ce que ViewHolder est souligné beaucoup plus dans RecyclerView - donc, ce que je pense est d'écrire un affichage personnalisé pour tenir l'élargissement de la mise en page et le lier à une onItemClickListener ou onItemTouchListener à l'élément de liste.
Vous devez vous connecter pour publier un commentaire.
Solution:
La façon dont j'ai résolu ce problème a été de mettre en œuvre un auditeur
View.OnClickListener
à laViewHolder
classe quiextends RecyclerView.ViewHolder
. Ainsi nous obtenons le code suivant:Les variables
originalHeight
etisViewExpanded
sont utilisés dans le processus d'animation. Dans le constructeur, je initialiser le point de vue de laView.OnClickListener
comme suit:Maintenant que le constructeur a pris soin de nous voulons configurer ce qui se passe lorsque l'utilisateur clique sur un individu
RecyclerView
élément. Les classes qui vont être utiles ici serait leValueAnimator
et laAnimation
objets. Nous remplacer laonClick
méthode pour accomplir cela:Maintenant, lorsque vous appuyez sur une cardview sur le
RecyclerView
(en supposant que vous avez unCardView
de configuration puis il doit développer. Assurez-vous de déclarer votre customView correctement dans votre fichier xml (par exemple, si vous voulez laCardView
pour développer vers le bas lorsque vous le touchez, puis assigner correctement les customView sous les autres points de vue et définir la visibilité allé quand vous déclarez et puis, quand l'animation démarre comme dans le code ci-dessus, puis définissez la visibilité de Visible et d'activer la vue.J'espère que cela peut aider quelqu'un.
CardView
diffère par article, mais le "CustomView
' est la même pour tous les éléments. Est-il possible de calculer la hauteur nécessaire pour la carte d'expansion sans qu'il soit visible? À l'aide d'unoriginalHeight * x
ne fonctionne pas dans mon cas.Une alternative plus facile pour @AndyRoid la réponse est d'utiliser
android:animateLayoutChanges="true"
de la propriété. De cette façon, vous n'avez pas besoin d'écrire aucun code d'animation; cependant, ce n'est pas une voie à suivre si vous avez besoin d'avoir un contrôle sur l'animation.Vous avez encore besoin de créer un
OnClickListener
:Attacher à chaque
ViewHolder
:N'oubliez pas d'effondrement de vues lors de la liaison d'un nouvel élément:
view_holder_layout.xml: