Dans iOS, il est très facile et puissant de la facilité à animer l'ajout et la suppression de la UITableView lignes, voici un clip d'une vidéo youtube montrant l'animation par défaut. Notez comment les environs lignes effondrement sur la ligne supprimée. Cette animation permet aux utilisateurs de garder une trace de ce qui a changé dans une liste, et la liste qu'ils étaient à la recherche à un moment où les données ont changé.
Depuis que j'ai été en développement sur Android, j'ai trouvé aucun équivalent facilité à animer des lignes individuelles dans un TableView. Appelant notifyDataSetChanged()
sur ma Carte causes de la liste à immédiatement mettre à jour son contenu avec de nouvelles informations. J'aimerais vous montrer une simple animation d'une nouvelle ligne, poussant dans coulissantes ou lorsque les données changent, mais je ne trouve pas toutes documentées façon de le faire. Il ressemble à LayoutAnimationController peut détenir une clé pour obtenir que cela fonctionne, mais quand j'ai mis un LayoutAnimationController sur mon ListView (similaire à ApiDemo de LayoutAnimation2) et de supprimer des éléments de ma carte après que la liste est affichée, les éléments disparaissent immédiatement au lieu d'obtenir de l'animation.
J'ai aussi essayé des choses comme les suivantes pour animer un élément lorsqu'il est retiré:
@Override
protected void onListItemClick(ListView l, View v, final int position, long id) {
Animation animation = new ScaleAnimation(1, 1, 1, 0);
animation.setDuration(100);
getListView().getChildAt(position).startAnimation(animation);
l.postDelayed(new Runnable() {
public void run() {
mStringList.remove(position);
mAdapter.notifyDataSetChanged();
}
}, 100);
}
Cependant, les lignes entourant l'animation de ligne ne pas déplacer la position jusqu'à ce qu'ils sautent de leurs nouvelles positions notifyDataSetChanged()
est appelé. Il semble ListView n'a pas de mise à jour de sa mise en page une fois que ses éléments ont été placés.
Lors de l'écriture de ma propre mise en œuvre/fourche de ListView a traversé mon esprit, cela semble être quelque chose qui ne devrait pas être si difficile.
Merci!