gpt4 book ai didi

android - 在 Android 中滑动卡片查看撤消卡片项

转载 作者:搜寻专家 更新时间:2023-11-01 09:36:13 25 4
gpt4 key购买 nike

我需要一些帮助。我在 Android 中使用像 Tinder 应用程序这样的刷卡库,我正在使用十字按钮删除卡片,现在我还想在单击后退选项时使用撤消选项。谁能告诉我使用的方法是什么?我非常感谢。谢谢!

最佳答案

我假设您已经实现了一个 ÌtemTouchHelper.SimpleCallback 接口(interface)来控制滑动。我在下面包含了此类实现的示例:

ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {

@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) {

final int adapterPosition = viewHolder.getAdapterPosition();
final Task taskItem = tasks.remove(adapterPosition); //tasks is an ArrayList of data that populates the RecyclerView. This line deletes an element from the ArrayList, but at the same time saves it in a variable.
adapter.notifyItemRemoved(viewHolder.getAdapterPosition()); //adapter represents my adapter class.

Snackbar snackbar = Snackbar //assuming that a Snackbar with "UNDO" button is what you want.
.make(rvTasks, "Item removed", Snackbar.LENGTH_LONG)
.setAction("Undo", new View.OnClickListener() {
@Override
public void onClick(View view) {
//this happens when "Undo" is clicked.
tasks.add(adapterPosition, taskItem);
adapter.notifyItemInserted(adapterPosition);
rvTasks.scrollToPosition(adapterPosition);
}
});
snackbar.show();
}

@Override
public void onMoved(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, int fromPos, RecyclerView.ViewHolder target, int toPos, int x, int y) {
super.onMoved(recyclerView, viewHolder, fromPos, target, toPos, x, y);
}

@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
return false;
}
};

ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback);
itemTouchHelper.attachToRecyclerView(rvTasks);

序列:

final int adapterPosition = viewHolder.getAdapterPosition(); 
//saves the position of card/item in case we want to reinstate it.
final Task taskItem = tasks.remove(adapterPosition);
//deletes an element from the ArrayList, but at the same time saves it in a variable.
adapter.notifyItemRemoved(viewHolder.getAdapterPosition());
//adapter is notified that item is removed and thus removed from view.

然后,

Snackbar.make(... details omitted ...) //remember to add in your build.gradle: compile 'com.android.support:design:25.3.1'
tasks.add(adapterPosition, taskItem); //deleted element readded to ArrayList
adapter.notifyItemInserted(adapterPosition); //adapter notified of reinstated item
rvTasks.scrollToPosition(adapterPosition); //auto-scrolls to position where item is reinstated

关于android - 在 Android 中滑动卡片查看撤消卡片项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43028950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com