Ich habe SwipeableRecyclerView für meine Android-Anwendung verwendet, um Swipes für meine RecyclerView zu aktivieren. RecyclerView enthält eine Liste von cardViews.RecyclerView.getChild (Index) zeigt Null, wenn die Liste gescrollt wird (Index wird durcheinander gebracht)
Ich habe versucht, Undo-Funktionalität für Karten zu implementieren, die gelöscht werden, wenn Swipe (erste Swipe zeigt rückgängig zu machen, neben Swipe löst löschen) nach links
Ich versuche, den folgenden Code (teilweise arbeiten I guess)
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);
}
}
}
});
wenn Einzelteile sind mehr (Bedürfnisse Scrollen)
View view = recyclerView.getChildAt(position);
gibt eine null-Referenz, die eine App Absturz verursacht.
Ich bezweifle, dass ich die falsche Methode zur Ansicht verwende. Ich sollte etwas verwenden, das mit Viewholder verwandt ist, ich bin wirklich irgendwie verwirrt darüber, wie man die Ansicht bekommt, die man vom Viewholder will.
Wenn jemand etwas teilen kann, das hilft ,, das wird großartig! Ich werde glücklich sein, mehr Infos zur Verfügung zu stellen, wenn jemand es wünscht,
Wie greife ich auf Ansichten dieses Viewholders zu? Kann ich das Layout ändern und ein neues aufblasen? –
Wie auch immer, ich benutze ein cardview, das zuerst nur angezeigt wird, wenn der Benutzer versucht, ein Element zu löschen. Auf diese Weise kann ich aus dem Chaos entkommen, das entsteht, wenn ich versuche, direkt von recyclerView auf die Ansichten zuzugreifen.Dieses funktioniert gut, ich werde dieses Konzept verwenden, bis ich in der Lage bin, Ansichten von recyclerView –
@yigit properly nehmen Können Sie ein bisschen mehr erarbeiten? Du hast gesagt, du solltest "..." benutzen. Ist dies das erwartete Verhalten oder ein Fehler? (Warum?). Ich sehe RecyclerView als scrollbare Ansicht, daher ist das ein bisschen komisch, wenn Sie mich fragen. – GMan