Ho letto un sacco di tutorial sull'animazione delle righe, ma tutte descrivono come animare la riga selezionata. Sono riuscito a farlo. Ma c'è un problema. Quando la riga viene rimossa con un'animazione, rimuovo i dati dall'adattatore e richiama notifyDataSetChanged(); Le righe (sotto la riga rimossa) salgono senza animazione. Come posso ottenere l'animazione di queste righe? Voglio che scivolino senza intoppi.ListView animare le righe dopo aver rimosso una riga selezionata
risposta
Rimuovere la voce di lista sulla voce click, spero che questo codice sarà utile per voi
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
final int position, long id) {
// TODO Auto-generated method stub
Animation anim = AnimationUtils.loadAnimation(view.getContext(),
android.R.anim.slide_out_right);
anim.setDuration(500);
view.startAnimation(anim);
new Handler().postDelayed(new Runnable() {
public void run() {
strings.remove(position);
mAdapter.notifyDataSetChanged();
}
}, anim.getDuration());
}
});
UPDATE
Basta tenere a mente il quadro dell'architettura che funziona quando viene chiamata la notifydatasetChanged().
- Il metodo si chiama GetView
- Sulla chiamata di vista get, si ricostruirà tutte le righe per la visualizzazione elenco.
Nel tuo caso, dobbiamo animare il metodo getView (che deve essere richiamato nuovamente sull'azione del notifydatasetchanged). Ecco la soluzione:
/**
* Hear strings is the data set
*/
@Override
public View getView(final int position, View convertView,
ViewGroup parent) {
final String str = this.strings.get(position);
final Holder holder;
if (convertView == null) {
convertView = mInflater.inflate(
android.R.layout.simple_list_item_1, null);
convertView.setBackgroundColor(0xFF202020);
holder = new Holder();
holder.textview = (TextView) convertView
.findViewById(android.R.id.text1);
holder.textview.setTextColor(0xFFFFFFFF);
convertView.setTag(holder);
} else {
holder = (Holder) convertView.getTag();
}
holder.textview.setText(str);
Animation animation = null;
animation = new ScaleAnimation((float) 1.0, (float) 1.0, (float) 0,
(float) 1.0);
animation.setDuration(750);
convertView.startAnimation(animation);
animation = null;
return convertView;
}
Verificare se funziona e fammi sapere se è stato utile/utile.
nel codice mostra come animare la riga selezionata. Nella mia domanda, sto parlando dell'animazione di altre righe quando quella selezionata è stata rimossa. Lo voglio dopo notifyDataSetChanged(); è chiamato le righe salgono con l'animazione. – Alex
@Alexey, vedere la mia risposta aggiornata, grazie –
- 1. C# - come faccio rinfresco DataGridView dopo aver rimosso le righe
- 2. Dimensioni schermo errate dopo aver rimosso UIImagePickerController
- 3. Ripristino navigationItem.title dopo aver rimosso navigationItem.titleView
- 4. Cosa fare dopo aver rimosso una gemma dal Gemfile?
- 5. Entity Framework: colonna non valida dopo aver rimosso la colonna
- 6. Animare determinati oggetti ListView
- 7. Come copiare le righe sopra la riga selezionata in Vim
- 8. salva la riga selezionata in UITableView dopo reloadData
- 9. Seleziona riga Dopo aver caricato UIPickerView
- 10. React può animare un componente nascosto/rimosso?
- 11. Ottenere righe vuote dopo aver impostato DataGridView.DataSource
- 12. Come ricaricare tableview dopo aver riordinato una riga? Le file hanno un'altezza variabile
- 13. Android: come richiedere un cursore per aggiornare ListView dopo aver eliminato la riga del database?
- 14. Ridisegna una singola riga in una listview
- 15. Nascondere le linee dopo aver visualizzato una figura pyplot
- 16. C# Listview Trascina e rilascia le righe
- 17. Come rendere una riga di JTable a uno stato "non selezionato" dopo aver selezionato una riga qualsiasi in quella tabella?
- 18. ListView Aggiornamento di una singola riga
- 19. Android: Verticale ListView con le righe sovrapposte
- 20. Posizione di mantenimento in ListView dopo aver chiamato notifyDataSetChanged
- 21. DataGridView senza riga selezionata all'inizio
- 22. Come evidenziare la voce selezionata in ListView?
- 23. Posizionare ViewPager come una riga in ListView
- 24. JQgrid: valore specifico da una riga selezionata
- 25. ExtJS - Get rowIndex di una riga selezionata
- 26. NSTableView: come disegnare una separatori personalizzati prima e dopo una riga selezionata
- 27. Vim: cancella le righe vuote all'interno di un'area selezionata visiva
- 28. new Date ("YYYY-MM-DD") ha smesso di funzionare in Qt WebKit dopo aver rimosso MacPorts
- 29. Riapplicare la striping della tabella dopo aver nascosto le righe (Twitter Bootstrap)
- 30. Ottenere le dimensioni di una listview
Funziona? http://stackoverflow.com/a/6857762/832776 –