首先下载GitHub项目,例如@zahidulislam。编辑文件。
主要活动:
public class MainActivity extends AppCompatActivity {
private RecyclerListAdapter adapter;
private ImageView trashImage;
private RecyclerView recyclerView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
trashImage = (ImageView) findViewById(R.id.trash_can);
adapter = new RecyclerListAdapter(this);
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
recyclerView.setAdapter(adapter);
GridLayoutManager layoutManager = new GridLayoutManager(this, 2);
recyclerView.setLayoutManager(layoutManager);
recyclerView.addOnItemTouchListener(new RecyclerItemClickListener(this, recyclerView, new RecyclerItemClickListener.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
}
@Override
public void onItemLongClick(final View view, final int position) {
final ImageView trashCan = (ImageView) trashImage.findViewById(R.id.trash_can);
trashCan.setVisibility(View.VISIBLE);
recyclerView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int y = SimpleItemTouchHelperCallback.y;
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
if (y < -50) {
trashCan.setImageDrawable(getResources().getDrawable(R.drawable.trashcan_hover));
} else {
trashCan.setImageDrawable(getResources().getDrawable(R.drawable.trashcan));
}
break;
case MotionEvent.ACTION_UP:
if (y < -50) {
RecyclerListAdapter.mItems.remove(position);
adapter.notifyDataSetChanged();
trashCan.setImageDrawable(getResources().getDrawable(R.drawable.trashcan));
trashCan.setVisibility(View.GONE);
return true;
}
trashCan.setVisibility(View.GONE);
case MotionEvent.ACTION_CANCEL:
break;
}
return false;
}
});
}
}));
ItemTouchHelper.Callback callback = new SimpleItemTouchHelperCallback(adapter);
ItemTouchHelper mItemTouchHelper = new ItemTouchHelper(callback);
mItemTouchHelper.attachToRecyclerView(recyclerView);
}
}
在SimpleItemTouchHelperCallback中添加字段:
public static int y;
和方法表达 public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive)
y = (int) viewHolder.itemView.getY();
只需放在顶部(垃圾桶)即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句