Liste extensible avec RecyclerView?
Il est possible d'utiliser extensible éléments de la liste avec de nouveaux RecyclerView? Comme ExpandableListView?
- vous pouvez voir le android horloge dans google source sur android 6.0
- Où puis-je trouver cette android horloge exemple de code source?
- Vous pouvez utiliser différentes viewType pour charger une présentation différente, lorsque vous cliquez sur bouton d'expansion.Cette solution est utilisée par Android Horloge : android.googlesource.com/platform/packages/apps/DeskClock
- voir ma réponse simple stackoverflow.com/a/48092441/5962715
- Pour les deux niveaux: thoughtbot.com/blog/introducing-expandablerecyclerview. Pour trois et plus de niveaux: blog.usejournal.com/..., github.com/bmelnychuk/AndroidTreeView, karthicandroid.blogspot.com/2016/08/....
Vous devez vous connecter pour publier un commentaire.
C'est simple à faire avec le stock LayoutManagers, tout dépend de la façon dont vous gérer votre adaptateur.
Lorsque vous souhaitez développer une section que vous venez d'ajouter de nouveaux éléments à votre carte après l'en-tête. N'oubliez pas d'appeler notifyItemRangeInserted lorsque vous faites cela. L'effondrement d'une section, il vous suffit de supprimer les éléments pertinents, et d'appeler notifyItemRangeRemoved(). Pour toutes les modifications de données sont dûment informés de, le recycleur vue d'animer les points de vue. Lors de l'ajout d'éléments, une zone à être rempli avec les nouveaux articles est faite, avec les nouveaux éléments en fondu. L'enlèvement est le contraire. Tout ce que vous devez faire en plus de la carte des choses est pour le style de votre point de vue à transmettre à la structure logique de l'utilisateur.
Mise à jour: Ryan Brooks a écrit un l'article sur la façon de le faire.
RecyclerView
.Obtenir le code d'exemple de mise en œuvre de ici
Ensemble ValueAnimator à l'intérieur onClick de ViewHolder
Voici le code final
ExpandableListView
", parce que le contenu élargi, dans ce cas, une liste elle-même avec des objets provenant de l'adaptateur. C'est un dégénéré solution avec seulement 1 point permis que les enfants à l'intérieur du groupe.https://github.com/gabrielemariotti/cardslib
Cette bibliothèque dispose d'une mise en œuvre d'une liste extensible avec une recyclerview (reportez-vous à la démo d'application en vertu de la "CardViewNative" --> "Liste, Grille, et RecyclerView" --> "Extensible de cartes"). Elle a aussi beaucoup d'autres combinaisons cool de cartes/lists.
Quelqu'un se plaignait que la solution mentionnée ci-dessus n'est pas utilisable avec une listview extensible de contenu. Mais il y a une solution simple: créer une listview et de remplir cette liste manuellement avec des lignes.
Solution pour les paresseux: il y a une solution simple si vous ne souhaitez pas modifier votre code pour beaucoup. Juste manuellement utiliser votre carte de créer des vues et les ajouter à la
LinearLayout
.Voici l'exemple:
des fonctions d'assistance: getThemeReference
de la classe helper: ExpandUtils
Kavin Varnan postet déjà comment animer une mise en page...
Mais si vous souhaitez utiliser ma classe, n'hésitez pas à le faire, j'ai posté un résumé: https://gist.github.com/MichaelFlisar/738dfa03a1579cc7338a
recyclerview
et vous pouvez agrandir/masquer cette imbriqués l'un et l'utilisation de toutes les optimisations de larecyclerview
Vous pouvez utiliser ExpandableLayout que comme une douceur de développer/réduire animation Case, de sorte que vous pouvez l'utiliser comme Case à cocher dans la ListView et RecyclerView.
https://github.com/KyoSherlock/ExpandableLayout
C'est l'exemple de code pour ce qui est mentionné par @TonicArtos pour ajouter et supprimer des Éléments et de l'animer alors que faire, ceci est pris à partir de RecyclerView Animations et GitHub de l'échantillon
1) Ajout d'un Écouteur à l'intérieur de votre onCreateViewHolder() de s'inscrire pour onClick
2) la création de votre propre OnClickListener à l'intérieur de votre Adaptateur
3) Ajouter votre addItem() et deleteItem()
4) Si votre RecyclerViewAdapter n'est pas dans la même Activité Recycleur Vue, passer instance de recyclerView à la Carte lors de la création
5) itemList est une liste de tableaux de type mObject qui contribue à maintenir les états de l'élément (Ouvrir/Fermer) , le nom, le type de l'Élément(points/mainItem) et mis à Thème basé sur les valeurs
Vous pouvez simplement changer votre code pour obtenir un maximum de lisibilité. Donc, vous avez à utiliser
notifyItemChanged()
méthode au lieu de la valeur de l'animateur. Vérifier ma réponse pour cela. Vous pouvez économiser beaucoup de temps en le faisant.suffit d'utiliser notifyItemChanged()` où il est nécessaire pour la réduction et le développement de points de vue.
Ne pas utiliser n'importe quelle bibliothèque ou tout code complexe pour cela.
voir cette