Android floating action button with drag and drop function

How to implement drag and drop using a floating action button in Android, e.g. flipkart app

+6
source share
2 answers

The drag and drop function for fab around the screen can be achieved using setOnTouchListener and listen events, please use below code

fab.setOnTouchListener(new View.OnTouchListener() { float startX; float startRawX; float distanceX; int lastAction; @Override public boolean onTouch(View view, MotionEvent event) { switch (event.getActionMasked()) { case MotionEvent.ACTION_DOWN: startX = view.getX() - event.getRawX(); startRawX = event.getRawX(); lastAction = MotionEvent.ACTION_DOWN; break; case MotionEvent.ACTION_MOVE: view.setX(event.getRawX() + startX); view.setY(event.getRawY() + startX); lastAction = MotionEvent.ACTION_MOVE; break; case MotionEvent.ACTION_UP: distanceX = event.getRawX()-startRawX; if (Math.abs(distanceX)< 10){ Toast.makeText(getActivity(), "FAB CLICKED", Toast.LENGTH_SHORT).show(); } break; case MotionEvent.ACTION_BUTTON_PRESS: default: return false; } return true; } }); 
0
source

Draggable Floating Action Buttton:

  fabCreate = (FloatingActionButton)view.findViewById(R.id.btnCreate); fabCreate.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent event) { switch (event.getActionMasked()) { case MotionEvent.ACTION_DOWN: dX = view.getX() - event.getRawX(); dY = view.getY() - event.getRawY(); lastAction = MotionEvent.ACTION_DOWN; break; case MotionEvent.ACTION_MOVE: view.setY(event.getRawY() + dY); view.setX(event.getRawX() + dX); lastAction = MotionEvent.ACTION_MOVE; break; case MotionEvent.ACTION_UP: if (lastAction == MotionEvent.ACTION_DOWN) //Toast.makeText(getActivity(), "Clicked!", Toast.LENGTH_SHORT).show(); break; case MotionEvent.ACTION_BUTTON_PRESS: intent = new Intent(getActivity(), PostActivity1.class); startActivity(intent); default: return false; } return true; } }); 
-1
source

All Articles