Tôi đã sử dụng SwipeableRecyclerView cho ứng dụng Android của mình để bật swipes cho recyclerView của tôi. RecyclerView chứa danh sách các cardView.RecyclerView.getChild (chỉ mục) hiển thị rỗng khi danh sách được cuộn (chỉ mục bị rối loạn)
Tôi đã cố gắng để thực hiện chức năng undo đối với thẻ đó sẽ được xóa khi vuốt sang trái (swipe đầu tiên chương trình undo, swipe tiếp theo gây nên xóa)
tôi đang cố gắng đoạn mã sau (một phần làm việc tôi đoán)
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);
}
}
}
});
khi Items có nhiều (nhu cầu di chuyển)
View view = recyclerView.getChildAt(position);
trả về một tham chiếu null gây một vụ tai nạn ứng dụng.
Tôi nghi ngờ rằng tôi đang sử dụng phương pháp sai để xem. Tôi nên sử dụng một cái gì đó liên quan với người xem, tôi thực sự loại nhầm lẫn về làm thế nào để có được xem mà bạn muốn từ người xem.
Nếu bất kỳ ai cũng có thể chia sẻ mọi thứ giúp ích, điều đó thật tuyệt vời! Tôi rất sẵn lòng cung cấp thêm bất kỳ thông tin nào nếu ai đó muốn,
Làm cách nào để truy cập mọi chế độ xem từ trình xem này, Tôi có thể thay đổi bố cục và tăng bố cục mới không? –
Dù sao tôi đang sử dụng một cardview được ẩn lúc đầu để hiển thị onlly khi người dùng cố gắng để xóa một mục, Bằng cách đó tôi có thể thoát khỏi mess tạo ra khi tôi cố gắng truy cập các quan điểm trực tiếp từ recyclerView.Điều này là một trong những hoạt động tốt, tôi sẽ sử dụng khái niệm này cho đến khi tôi có thể có quan điểm prooperly từ recyclerView –
@yigit Bạn có thể xây dựng thêm một chút? Bạn nói bạn "nên sử dụng ...". Đây có phải là hành vi dự kiến hoặc lỗi không? (tại sao?). Tôi thấy RecyclerView là một chế độ xem có thể cuộn được, do đó, điều này hơi lạ nếu bạn hỏi tôi. – GMan