如何在没有第 3 方库的情况下对 RecyclerView 项目执行滑动手势
How to do swipe gesture on RecyclerView item without 3rd party lib
他们是否直接支持在 RecyclerView 项目上滑动 delete/archive(从右到左或从左到右)。
而不是 delete/archive 我想要列表项下的四个按钮。
类似这样的东西 https://github.com/47deg/android-swipelistview 但对于 recyclerview 和官方支持不是任何第 3 方库
是的,您可以使用支持库提供的 ItemTouchHelper class 来完成。
P.S。
前几天我不得不这样做,并且还想尽可能避免使用第 3 方库。该库可能做的比您需要的要多得多,因此在您的情况下它可能比必要的更复杂。它也可以不必要地增加你的方法数量。这只是您应避免添加 lib 作为问题快速修复的原因的示例。
编辑:我试了一下,看这个blog post and this github repo。
是的,有。使用 ItemTouchHelper。尝试克隆 this project 并查看它是如何使用的。
具体file见第87行
对于不想点击链接的懒人,您可以这样设置:
ItemTouchHelper.SimpleCallback simpleCallback =
new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.RIGHT) {
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder,
RecyclerView.ViewHolder target) {
return false;
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
//do things
}
};
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleCallback);
itemTouchHelper.attachToRecyclerView(recyclerView);
recyclerView
是持有回收器视图的变量。
除了ItemTouchHelper.RIGHT
还有其他的方向,试试看吧
他们是否直接支持在 RecyclerView 项目上滑动 delete/archive(从右到左或从左到右)。
而不是 delete/archive 我想要列表项下的四个按钮。
类似这样的东西 https://github.com/47deg/android-swipelistview 但对于 recyclerview 和官方支持不是任何第 3 方库
是的,您可以使用支持库提供的 ItemTouchHelper class 来完成。
P.S。 前几天我不得不这样做,并且还想尽可能避免使用第 3 方库。该库可能做的比您需要的要多得多,因此在您的情况下它可能比必要的更复杂。它也可以不必要地增加你的方法数量。这只是您应避免添加 lib 作为问题快速修复的原因的示例。
编辑:我试了一下,看这个blog post and this github repo。
是的,有。使用 ItemTouchHelper。尝试克隆 this project 并查看它是如何使用的。
具体file见第87行
对于不想点击链接的懒人,您可以这样设置:
ItemTouchHelper.SimpleCallback simpleCallback =
new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.RIGHT) {
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder,
RecyclerView.ViewHolder target) {
return false;
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
//do things
}
};
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleCallback);
itemTouchHelper.attachToRecyclerView(recyclerView);
recyclerView
是持有回收器视图的变量。
除了ItemTouchHelper.RIGHT
还有其他的方向,试试看吧