RecyclerView.getChild (index) affiche null lorsque la liste est défilée (l'index est corrompu)

J'ai été en utilisant SwipeableRecyclerView pour mon application android pour permettre le passage des doigts pour mon recyclerView. RecyclerView contient une liste de cardViews.

J'essayais de mettre en œuvre fonction annuler pour les cartes qui vont être supprimés lorsque balayez vers la gauche (premier balayage montre annuler, à côté de balayage déclenche supprimer)

Je suis en train d'essayer le code suivant (en partie à travailler, je suppose)

SwipeableRecyclerViewTouchListener srvTouchListner = new SwipeableRecyclerViewTouchListener(rvTimerList,
new SwipeableRecyclerViewTouchListener.SwipeListener(){
@Override
public boolean canSwipe(int i) {
return true;
}
@Override
public void onDismissedBySwipeLeft(RecyclerView recyclerView, int[] ints) {
for(int position : ints){
View view = recyclerView.getChildAt(position);
if (view.getTag(R.string.card_undo) == null) {
if(viewStack == null) {
saveToViewStack(position, view);
final ViewGroup viewGroup = (ViewGroup) view.findViewById(R.id.time_card2);
view.setTag(R.string.card_undo, "true");
viewGroup.addView(view.inflate(TimerSummary.this, R.layout.timeslot_card_undo, null));
}
} else {
Log.d(TAG, "Removing Item");
deleteTimeSlot(timerInstanceList.get(position));
Toast.makeText(TimerSummary.this, "Deleted!", Toast.LENGTH_SHORT).show();
timerInstanceList.remove(position);
finalSummaryAdapter.notifyItemRemoved(position);
}
}
finalSummaryAdapter.notifyDataSetChanged();
}
@Override
public void onDismissedBySwipeRight(RecyclerView recyclerView, int[] ints) {
for (int position:ints){
View view = recyclerView.getChildAt(position);
if(view.getTag(R.string.card_undo) != null && view.getTag(R.string.card_undo).equals("true")){
viewStack = null;
recyclerView.setAdapter(finalSummaryAdapter);
}
}
}
});

lorsque les Éléments sont de plus en plus (besoins de défilement)

View view = recyclerView.getChildAt(position);

renvoie une référence null ce qui provoque une appli crash.

Je doute que je suis en utilisant la méthode incorrecte de la prise de vue. Je devrais être à l'aide de quelque chose en rapport avec viewholder, je suis en fait assez confus sur la façon d'obtenir la vue qui vous voulez à partir de viewholder.

Si quelqu'un peut partager tout ce qui contribue,, ça va être génial!
Je serai heureux de vous fournir plus d'infos si quelqu'un le veut,

source d'informationauteur P-RAD