Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT) {
- int currentState = 0;
- @Override
- public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
- return false;
- }
- @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 void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) {
- //Remove swiped item from list and notify the RecyclerView
- viewHolder.itemView.clearFocus();
- }
- // public static final float ALPHA_FULL = 1.0f;
- public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
- int maxMarginDp = 102;
- if (dX < -convertDpToPx(maxMarginDp)) {
- // if (dX == -1080) {
- // dX = -convertDpToPx(maxMarginDp);
- // }
- dX = -convertDpToPx(maxMarginDp);
- // currentState = ACTION_WAIT_FOR_USER;
- }
- if (actionState == ACTION_STATE_SWIPE) {
- View itemView = viewHolder.itemView;
- Paint paint = new Paint();
- Bitmap iconEdit;
- Bitmap iconDelete;
- iconEdit = BitmapFactory.decodeResource(
- getContext().getResources(), R.drawable.edit_pencil);
- iconDelete = BitmapFactory.decodeResource(
- getContext().getResources(), R.drawable.big_delete);
- iconEdit = Bitmap.createScaledBitmap(iconEdit, convertDpToPx(24), convertDpToPx(24), true);
- iconDelete = Bitmap.createScaledBitmap(iconDelete, convertDpToPx(24), convertDpToPx(24), true);
- paint.setColor(getActivity().getResources().getColor(R.color.colorPrimary));
- int dYForDeduct = convertPxTodDp(itemView.getBottom() - itemView.getTop()) / 30;
- c.drawRect((float) itemView.getRight() + dX,
- (float) itemView.getTop() + dYForDeduct,
- (float) itemView.getRight(),
- (float) itemView.getBottom() - dYForDeduct - convertDpToPx(15),
- paint);
- c.drawBitmap(iconDelete,
- (float) itemView.getRight() - convertDpToPx(18) - iconDelete.getWidth(),
- (float) itemView.getTop() + ((float) itemView.getBottom() - (float) itemView.getTop() - iconDelete.getHeight() - convertDpToPx(15)) / 2,
- paint);
- c.drawBitmap(iconEdit,
- (float) itemView.getRight() - convertDpToPx(36) - iconEdit.getWidth() - iconEdit.getWidth(),
- (float) itemView.getTop() + (itemView.getBottom() - itemView.getTop() - iconEdit.getHeight() - convertDpToPx(15)) / 2,
- paint);
- Paint paint2 = new Paint();
- paint2.setColor(getActivity().getResources().getColor(R.color.colorBackground));
- paint2.setTextSize(60);
- c.drawText(String.valueOf(dX), (float) itemView.getRight() - convertDpToPx(18) - iconDelete.getWidth(),
- (float) itemView.getTop() + ((float) itemView.getBottom() - (float) itemView.getTop() - iconDelete.getHeight() - convertDpToPx(15)) / 2, paint2);
- // Fade out the view as it is swiped out of the parent's bounds
- // final float alpha = ALPHA_FULL - Math.abs(dX) / (float) viewHolder.itemView.getWidth();
- // viewHolder.itemView.setAlpha(alpha);
- viewHolder.itemView.setTranslationX(dX);
- if (currentState == ACTION_WAIT_FOR_USER) {
- actionState = ACTION_STATE_DRAG;
- }
- } else {
- super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
- }
- }
- private int convertDpToPx(int dp) {
- return Math.round(dp * (getResources().getDisplayMetrics().xdpi / DisplayMetrics.DENSITY_DEFAULT));
- }
- private int convertPxTodDp(float px) {
- return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, px, getResources().getDisplayMetrics());
- }
- };
- ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback);
- itemTouchHelper.attachToRecyclerView(recyclerView);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement