我注意到了这些库,并渴望在我的应用程序中使用它们。我的RecyclerView
用途StaggeredGridLayoutManager
是组织viewHolders
,我写下了以下代码:
ItemTouchHelper helper = new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(
ItemTouchHelper.UP | ItemTouchHelper.DOWN | ItemTouchHelper.START | ItemTouchHelper.END,
ItemTouchHelper.START | ItemTouchHelper.END) {
@Override
public boolean onMove(RecyclerView recyclerView,
RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
mAdapter.move(viewHolder.getAdapterPosition(), target.getAdapterPosition());
return true;
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
mAdapter.remove(viewHolder.getAdapterPosition());
}
});
helper.attachToRecyclerView(mRecyclerView);
有两个问题:
滑动一个项目不会改变它
alpha
的 bydeltaX
。想象一下
RecyclerView
(有 2 列)中有 3 个项目:- 第一个是中号;
- 第二个小于第一个;
- 第三个是最大的。
如果我将第三个移动到第一个位置,向下滚动RecyclerView
(其他项目不会影响前三个)然后向上滚动,第二个和第三个将完全一样。
看来我应该编写一个自定义ItemTouchHelper
添加alpha
动画来解决第一个问题,而我没有正确使用这些类,从而导致了第二个问题。
因此,什么是最适合使用的样本ItemTouchHelper
?或者如何实现一个定制的?提前感谢您的任何答案或评论。