Ho implementato cardview nella mia applicazione con il swipe della funzione da eliminare. Nel momento in cui scorro a destra, la vista della scheda passa e ritorna per un decimo di secondo, quindi il guadagno si spegne provocando uno sfarfallio.L'operazione di scorrimento per eliminare un cardview causa uno sfarfallio per un breve secondo prima di animare
Il mio codice va così per l'ascoltatore a scorrimento rapido. Sto aggiornando il risolutore di contenuto e informando l'adattatore.
SwipeableRecyclerViewTouchListener swipeTouchListener =
new SwipeableRecyclerViewTouchListener(recyclerView,
new SwipeableRecyclerViewTouchListener.SwipeListener() {
@Override
public boolean canSwipe(int position) {
return true;
}
@Override
public void onDismissedBySwipeRight(RecyclerView recyclerView, int[] reverseSortedPositions) {
for (int position : reverseSortedPositions) {
Post post = posts.get(position);
post.setIsDeleted(true);
getActivity().getContentResolver().update(PostsContract.PostEntry.buildUriForPost(posts.get(position).get_ID()), Utility.changePostToContentValue(post), "_id=" + post.get_ID(),null);
posts.remove(position);
adapter.notifyItemRemoved(position);
}
}
});
recyclerView.addOnItemTouchListener(swipeTouchListener);
mio onLoadFinished appare come questa
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
if(data!=null && data.getCount() != posts.size()){
posts.clear();
while (data.moveToNext()){
Post post = new Post(data);
posts.add(post);
adapter.notifyDataSetChanged();
}
}
}
Quando ho messo punti di rottura. Funziona correttamente nel gestore onDismissedSwipeByRight dove la scheda eliminata non è visibile. Ma quando si tratta del punto di interruzione OnLoadFinished, vedo la scheda cancellata che viene ripristinata automaticamente e che si spegne automaticamente dopo l'esecuzione della funzione, anche se la dimensione dei messaggi Arraylist è esattamente la stessa.
Poiché la scheda cancellata ritorna per un decimo di secondo. Ciò provoca uno sfarfallio. Qualcuno può dirmi dove sto andando storto?
Perché hai un 'for loop' all'interno di' onDismissedBySwipeRight'? –
reverseSortedPositions è una matrice. Ma funziona solo una volta. – Abhik
aggiungi un codice temporale per vedere quanto tempo impiega ciascuna linea. La mia ipotesi è che stai facendo troppo lavoro in quel metodo. –